Skip to main content

Full text of "Compute! Magazine Issue 082"

See other formats


■<■: 



!/.'- 



A Buyer's Guide To Printers 



$3.00 
March 
1987 
Issue 82 
Vol. 9. No. 3 

S4.25 Canada |a» 
02193 »» 

ISSN0194-357X 



COMPUTE! 

The Leading Magazine Of Home, Educational, And Recreational Computing 



A hands-on look at Commodore's newest and 
most powerful rBOit^ine ever 



Euchre 

An absorbing vers oi i of II I 
popular card gapne for 
Commodore 64, Amiga, Apple II, 
PC/PCjr, and Atari 

Applecoder 

Hide your private files from 
prying eyes 

Filedump For IBM PC/PCjr 

Examine your dlsl< files in detail 

Custom Characters For Ata^XIT*^ 
AndXE 

An efficient way to ma 
own character sets 



DOS Calc For The 64 

Work with your disks the eo 

3-D Surfaces For Amiga 

Create 3-D shapes in any 
color combination 

Diskcheck /~^~'''~^^ 

Powerful Apple sector editor 
for DOS 3.3 

128 File Viewer 

A fast, multipurpose disk utility 



J '7U86"Q2193""3 




Is Getting The Answer To 

Software Problems 

A Bigger Problem Than 

The Problem? 




Don't stay on hold 
when there's help online 
from CompuServe' 

Software Forums. 



The new upgraded 
version of 
your software 
locks up. 
And every 
time you 
reboot, 
you get stuck in tfie 
same place in thie program. 

You've cfiucked the manual, 
because you've done exactly what it 
tells you to do six times already 
So you call the software company 

Now you spend half a day beating 
your head against a brick wall of 
busy signals, ranting at recorded 
messages, hanging around on hold. 
And you still don't get the solution 
to your problem. 

Meanwhile, progress is stopped 
and your profits are 
dribbling away But 
wait. There's help... 

Several prom- 
inent, progressive 
software publishers 
recognize this 
problem, and 

working with CompuServe, 
have developed a solution — 
CompuServe Software Forums. 

Now you can go online with 
experts from the companies that 
produced your software and get 




prompt, written answers to your 
specific problems. ^^. You can 
even talk with ^^^k the actual 
software 
\ developers. 




Aldust Ashton-Tate" Autodesk! 
Borland InternationaC Creative 
Solutions' Digital Research' living 
Videotext' Lotus' Inc., Microsoft! 
MicroPro! Misosys Inc" and Software 
Publishing* all have CompuServe 
Software Forums. 
And we keep 
adding 
more. 




CompuServe's large subscriber 
base also puts you in touch with 
thousands of other, often more expe- 
rienced, users of the same software. 
You'll find they can give you lots 
of creative ways to get the most out 
of your software. 

And software forums are the best 
way to learn about product updates, 
new product announcements, new 
ways to expand the uses of your soft- 
ware, and offer free uploads of your 
own programs. 



frequently publish software reviews. 
And you can find help for many 
other software products in our other 
computer- related forums for IBM \ 
Tandy! Atari! Apple! Commodore! 
Tl" and others. 

The last thing you 
need when you've got 

a software problem 

.^ is a bigger 
problem 
getting answers. 
So, from now 
on, get , 

prompt, '^"SSStfi^, 
informed 
answers on 
CompuServe Software Forums. 

To buy your CompuServe 
Subscription Kit, see your nearest 
computer dealer Suggested retail 
price is $39.95. 

To order direct 
or for more 
information, 
call 800-848-8199 
(in Ohio, 614- 
457-0802). 





it you re 
already a 
CompuServe 
subscriber, 
just type - 

GO SOFTWARE j[|l 
at any! prompt. 



CompuServe 

Wormalion Services. RO. Box 20212 

5000 Arlington Centre Blvd. Columbus. OH 43220 



Our online electronic magazines An hsr bio* company 



TEST DIVE ONE FOR YOURSELF. 




In their daj^ they ruled 

over three quarters of the 

earth's surface. 
During WWII, they 

viciously brought Britain 

to her 

knees. 

And 

Japan 

to the 

ground, 
These vi^ere the silent 

killers: Tench. Gato. 

U-Boat. 
And now, they return. 

In this, the most realistic, 

all-encompassing simula- 
tion ever created 
for the personal 
computer 

"&U will com- 
mand one of six 
types of Amer- 
ican subs or German Kriegs- 

marine U-Boats, during any 

year from 1939 to 1945. 

You'll perform one of over 

The No, I battery. Sea guard radar stub. 
The shift's hrari. 

Your ammti. 



TAKE OUR PREVIEW DISK FOli A SPIN. Dmp this mi,/>o» i„ tlw 
mail with yaitr check or iiumty order, and ar.'I! gladly send you to the 
South Pacific to have it out wilk an enemy fleet. 

Mail to Sub Battle Previetn RO.Box 8020, Redwood City. CA 94063. 



Quantity 



Total 



Apple ir& comptit. (12SK). 

Commoditre 64/128 

IBM PC & compat. 

Atari ST 

Miicintosh 

Apple II GS 

Total Disks Ordered _ 

Name 

A ddrcss 



. $1.50 ca. 
$1.50 ca. 
$1.50 ea. 

- $2,75 ea, _ 
. $2.75 ea. _ 

- $2.75 ea. _ 
. Total Enclosed 

- Phone < ) 

Age- 



City/Slate/yjp , 

Canadian orders please add 50c for additional postage. 

Plrtin- aSlme 4 liifi ufeks for ddiverf. Offer fjtpires 8.',in/S7 and is mlid only 
the amtint'ulat U.S. and Canada, \^id where prvhibilud. 





60 missions. Or you'll en- 
■ gage in the most difficult 
task of all: To make it 
through the entire war. 
'^ Each vessel is com- 
Nji pletely unique and 
/I painstakingly authen- 
tic, so you'll have a lot 
to learn: Navigation. 
Weather. Radar. 

Tkr Seefi periscopes. 



And the contents of a 
vital target book, 
among other things. 

Your arsenal will in- 
clude deck and anti- 
aircraft guns. Torpedoes. 
And mines. 

But even all that may 
not be enough. 

Because besides the 
risk of bumping a deptii 
charge or facing a killer 
Destroyer, you'll still 
have to contend with the 
gunfire of enemy aircraft. 

No simulation has 
ever had the degree of 
authenticity gut- wrenching 
action or historical accuracy of 
this one. 

The first release of our new 
Masters Collection. Andj 
a challenge of unbe- 
lievable 
depth. 

Apple II & mmpatibks, Apple IIGS. 
Atari ST, CS4/12H. IBM & 
cvmpalibtes, Macintosh, 



30: 




Outstanding 

Artistic 

Instructive 

books from COMPUTE! 



The 
Elementary 

_Atari 



/ > 




WdJUn 11 &indm 

\ il'-iTjl'' l«-f nixr -L |WKk k< Tht Atttl St 

petrMtai .vWrt(i«i«. J raw ran.-* JrnJ lumw 



cOaVvtn *w«* 



You'll find expert Information, useful applications, 
Intriguing gomes, grapiiics, colorful art, music, 
programming guides, and more in these new 
Atari ST-specific books. Beginning to advanced ST 
users will benefit from the applications and 
tutorials in each book. And as always, 
the books are written in COMPUTEi's clear, 
understandable style, 



COMPUTEI'S ST Applications 

Brion Fiynn and John J. Flynn 

Si 6.95 ISBN 0-87455-067-X 

An excellent assortment of games and applications for busi- 
ness and tiome, written in BASIC, COMPUTEi's ST Applications 
is an instant library of programs that every ST owner will want 
to have. All programs have been fully tested and ore ready 
to type in and use on the Atari 520 or 1 040 ST. There is also 
an optional disk availatDle tor $15.95 which includes the pro- 
grams In the book. 




COMPUTEi's ST Artist 

Selby Batemon ond Lee Noel, Jr. 

SI 6.95 ISBN 0-87455-070-X 

A step-by-step guide to creating dazzling graphics and art 
on the Atari ST personal computer. Using NEOchrome and 
DEGAS', this bool< shows you how to get the most out of 
these excellent painting and drawing programs. Tips and 
techniques provide you with the most efficient ways of 
creating graphics and demonstrate how to produce colorful 
art. Examples illustrate each step and show off all the visual 
power of the Atari ST and its graphics software. Information is 
included on the newest versions of NEOchrome and DEGAS 
Elite. There is an optional companion clisk available for 
$15.95 which includes artwork from the book. 

• A product of Batteries Included. 



COMPUTEI'S ST Applications Guide: 
Programming In C 

Simon Field, Kathleen Mandis, and Dave Myers 
$19.95 ISBN 0-87455-078-5 

COMPUTEI'S ST Applications Guide: Programming In C is your 
complete tutorial to designing and writing effective ST 
application programs. Practical examples show you how to 
use GEM routines to develop professional-looking applica- 
tions of your own. Explore topics such as disk files, menus, 
icons, the mouse, sliders, dialog boxes, programming desk 
accessories, music, and much more. For intermediate to ad- 
vanced C programmers. 

Thie Elementary Atari ST 

William B, Sanders 

Si 8,95 ISBN 0-87455-024-6 

A clear, eosy-to-use guide to the Atari ST, this book takes 
you through everything from connecting your computer, 
loading programs, and creating graphics and music, to writ- 
ing your own programs. 



Order your Atari ST bool< today. Call toll-free 800-346-6767 (in NY 212-887-8525), or write 
COMPUTE! Books. P.O. Box 5038. F.D.R. Station, New York, NY 10150. 

NC residents add 5 percent soles tax and NY residents add 8.25 percent sales tax. 

Shipping and handling: S2.00 U,S, and surface mail; $5.00 airmail. 

Please allow 4-6 weeks for delivery. 



COMPUTE! Publicotionsjnc 



Part of ABC Consumer Magazines. Inc. 
One of tne ABC PuOlishing Companies 



COf^PUTEl books are available in Conoda from McGraw-Hill, Ryerson 
Ltd., 330 Progress Ave , Scarborough, Ontario, Canada MIP 2Z5. 



COMPUTE! 



MARCH 1987 
VOLUME 9 
NUMBER 3 
ISSUE 82 



FEATURES 



8 

ie 

19 
24 
37 
40 
46 



Commodore's New, Expandable Amiga 2000: 
A Hands-On Report Philip i. Nelson 

New Peripheral Technologies 

An Introduction to Hard Disk Drives Philip I. Nelson 

The New High-Quality Dot-Matrix Printers Kathy Yakal 

The Big Picture; Advances in Screen Display Selby Boteman 

A Buyer's Guide to Printers 

Euchre David Shimoda 



GUIDE TO ARTICLES 
AND PROGRAMS 



REVIEWS 



70 Little Computer People Neil Randall 

74 Certificate Mal<er and Walt Disney Card & Party Shop Karen McCullough 

78 Roadwar 2000 james V. Trunzo 



COLUMNS AND DEPARTMENTS 

4 The Editor's Notes Richard Mansfield 

65 Readers' Feedback The Editors and Readers of COMPUTEI 

79 Computers and Society: Demons and Events, Part 2 David D. Thornburg 

81 Microscope Sheldon Leemon 

82 Telecomputing Today: Pocket-Switching Rule Changes Arlan R, Levitan 

83 The World Inside the Computer: 

When Buying a New Computer: Don't Ask Me! Fred D'Ignazio 

84 The Beginner's Page: Getting Started with a Printer C. Regena 

85 ST Outlook: Who Is That Man, and Why Is He Smiling? Philip I. Nelson 

87 AmigaView: The Sidecar Arrives Sheldon Leemon 

88 IBM Personal Computing: Two Winners and a Loser Donald B. Trivette 

89 INSIGHT: Atari— Corrected File Conversions Bill Wilkinson 



AP/AT/AM/64/ 
PC/PCjr 



AP/ST/AM/64 

AP/64/PC 
AP/ST/64/PC 



THE JOURNAL 



90 3-D Surfaces for Amiga Martin Staley 

94 Fixing Atari Revision-B BASIC Barry Hart 

95 Custom Characters for Atari XL and XE S. M. Bough 

97 Applecoder Adam Levin 

100 128 File Viewer Jeffrey D, Partch 

102 Filedump for IBM PC/PCjr Harry Faulkner 

104 DOS Calc Steve Kelly 

108 Diskcheck: Apple Sector Editor for DOS 3.3 Steve Meyles 

1 10 128 Editing Functions for Commodore 64 Jim Allen 

113 Amiga Banner Printer Walter Bulowa 

1 16 Using PUT and GET on the PC/PCjr Rafael Gonzalez 

1 18 Superplotter Greg Perkins and Derry Bryson 

80 CAPUTEI Modiflcattons or Corrections 
to Previous Articles 

122 COMPUTEI's Author's Guide 

123 COMPUTEI's Guide to Typing in Programs 
1 26 MLX: Machine Language Entry Program 

for Commodore 64 and 128 

130 MLX: Machine Language Entry Program for Apple 

1 32 Advertisers index 



NOTE: See page 123 
before typing in 
programs. 



ST 

AM 
PC 
AT 



AM 
AT 

AT 

AP 

128 
PC/PCjr 

64 

AP 

64 

AM 
PC/PCjr 

64 



AP Appie, Mac Macintosh. AT 
Atari, ST, Afori ST. 64 Cammodore 
M. 1 28 Commodore 1 28, P 
PET/CBM, PC IBM PC. PCjr IBM PCjr, 
AM Amiga 'General Interest 



COMPUTE! Publicationsjnc.^ 

Part ol ABC Consumer Magazines, Inc. ^^ 

One of ths ABC Publishing Companies 

ABC Publishing, President, Robart G- Burton 

1330 Avenue of the Americas, New Yorti, New Yorl( 10019 



COMPUTEI The Journal for Proaressive Computing (USPS: 537250) is published monthly bv 
COMPUTE! Publications, Inc., 823 7lh Ave., New York, NY 10019 USA. Phone: (212) 265-g36d. 
Editorial Offices are located at 324 West Wendover Avenue, Greensboro, NC 27J08. Domestic 
Subscriptions: 12 issues, $24. POSTMASTER: Send address changes to: COMPUTEI Magazine, P.O. 
Box 10955, Des Moines, lA 50950. Second class postage paid at Greensboro, NC 27403 and addi- 
tional mailing offices. Entire contents copyright ©1987 by COMPUTE! Publications, Inc All riEhts 
reserved, ISSN 0194-357X, r. o j h 



Editor's Notes 



As microprocessors, computer chips, be- 
corhe increasingly a fact of modem 
life — stamped into everything from cof- 
feemakers to greeting cards — we can ex- 
pect the things around us to grow ever 
smarter and, consequently, more useful. 
Madison Avenue seems to follow a pre- 
dictable pattern when describing the 
various levels of appliance intelligence. 
It's most obvious with communications 
appliances like stereos and TVs. What 
was just a radio suddenly becomes a 
digital radio. A year or two later, and 
some additional RAM and ROM chips, 
and it's computerized (or microprocessor 
controlled). Eventually, when the device 
is finally more computer than radio, it's 
called programmable. 

Although there's considerable im- 
precision and variability in the use of 
these terms, there is a profound change 
taking piace. 

You can see it happening now with 
television sets. A year ago we were 
introduced to the first "digital" TV. All 
this amounted to was "picture within 
picture": You couid cause a frame to 
appear on the screen holding an image 
that differed from the larger, normal TV 
image. Now, however, newer "digital" 
TVs use special sampling techniques to 
improve picture quality by creating 
more lines than were originally broad- 
cast. In other words, the TV is smart 
enough to infer what would have been 
sent if the TV studio or videotape were 
transmitting roughly twice as much pic- 
ture as either is currently able to. The 
result is a sharper, more detailed pic- 
ture, and you cannot see the fine hori- 
zontal lines which are visible on most 
TV images. 

With this we have moved closer to 
high-definition, theater-quality home 
entertainment. However, there is a 
clear line of progress yet to come, from 
these early steps to the ultimate TV. For 
one thing, even intelligently enhanced 
images are not, themselves, digital. To 
see why, we need to briefly define the 
important distinction between analog 
and digital. 

There are only two ways to trans- 
mit, store, or manipulate information: 
analogously or digitally. Analog infor- 
mation is an imitation, where digital 
information is a numeric code. Cavemen 



used both forms: If an advance scout 
needed to tell the hunting party that he 
saw two elephants, he could either imi- 
tate them by sketching two elephant 
flgures on a tree, or simply poke two 
sticks into the ground. (Digital, being a 
code, depends on a prior agreement — 
for instance, that sticks in the ground 
represent elephants.) 

But an even more fundamental dis- 
tinction between digital and analog 
rests on whether the information is con- 
tinuous or separated into abrupt steps. 
Again, this can be seen in the earliest 
cave paintings: A drawing of an ele- 
phant is a unit, a whole unto itself, 
sometimes even drawn with a continu- 
ous single line. A series of straight lines, 
however, perhaps representing a herd 
of elephants, is discontinuous, separated 
into symbols, and bears no real resem- 
blance to the thing it communicates. 
Thus, when you call someone on the 
telephone, the rise and fall of your 
words is reproduced, imitated by the 
little speaker in the earpiece of the tele- 
phone on the other end. The infor- 
mation is continuous, a flow of sound. 
Were you to communicate via smoke 
signals or Morse code, the information 
would be broken into distinct steps or 
pulses and would bear no resemblance 
to the spoken word. In the modern 
sense of the term, digital communica- 
tion means frequently sampling a con- 
tinually varying event to reduce it to a 
series of numbers. The numbers, then, 
can be easily stored or transmitted. 
They are also easy to manipulate: To 
make a louder sound, just multiply the 
numbers. 

Nevertheless, analog has been the 
primary method of communication for 
most of man's history simply because 
it's generally easier to accomplish with- 
out computer assistance. For example, 
the traditional phonograph record is 
made by a little needle which vibrates a 
pathway into soft vinyl. When record- 
ing a trumpet, the needle digs a vinyl 
pathway which is a direct imitation of 
the vibrations in the air caused by the 
trumpet. Then, when you want to listen 
to it, the needle on your record player 
sends the same vibrations to your 
speaker, which, in turn, vibrates the air 
as the trumpet originally did. All the 



way along, from Doc Severinsen's horn 
to your ear, the information is passed in 
the form of various analogies to the 
vibrations of air we recognize as the 
sound of a trumpet. 

To digitize this sound requires 
enormous amounts of computer power, 
and it was only a few years ago, with 
advances in microprocessing, that digi- 
tal music, in the form of the compact 
disc, became possible. Whereas analog 
is easy (the needle and vinyl and speak- 
ers transmit vibrations to each other 
pretty much unassisted), digital re- 
quires that the sound be turned into a 
code, into numbers to be stored on the 
disc. Then, in order for you to listen to 
it, those numbers have to be translated 
back into vibrations by a compact disc 
player through a process known as dig- 
ital-to-analog conversion. And to get 
accurate sound, you need lots of num- 
bers: 44,000 per second. A single min- 
ute of music on a compact disc requires 
more than 2.5 million numbers. 

A video event requires far more 
information than audio. So we can ex- 
pect to wait years before TV images are 
thoroughly digitized all through the 
chain from network camera to home TV 
screen. Some few studios are just now 
beginning to add digital capabilities, 
but the cost is as yet far beyond the 
consumer market. As usual, the con- 
sumer must wait for lower chip costs 
and higher chip speeds before the man- 
ifest beneflts of digital TV will be every- 
where available. 

The latest home video recorders do 
have enough memory to capture a sin- 
gle still image and display it, rock 
steady, as a freeze frame. We can also 
expect digital signal enhancement for 
VCRs soon. But the most dramatic 
changes will come in the next stage, the 
computerization phase. At that point, 
the home television will start to make 
some decisions all by itself. 

To get a hint of what's possible, we 
can look at a couple of recent develop- 
ments in the satellite TV world: con- 
stant database broadcasting and 
intelligent receivers. 

There's now a service which acts 
like a smart TV Guide. You interact with 
it when you tune it in. You can request a 
list of sports events only, or reviews of 



4 COMPUTE! March 1 987 



all of tonight's movies. In other words, 
it works like a typical computer data- 
base where the user is able to search 
and filter the information, to tailor it to 
his or her needs or tastes, 

In a related development, if you 
want to watch scrambled satellite broad- 
casts like HBO, you purchase a "de- 
scrambler," a unit that looks something 
like a hi-fi receiver, but which is really a 
sophisticated computer in disguise. You 
plug it in between your satellite dish and 
your TV and it mostly just passes the 
pictures and sound right through. It sits 
there and does nothing more than pre- 
tend it's just a wire, since most satellite 
signals are unscrambled. But when you 
change to HBO, it recognizes the scram- 
bling and blanks out the picture with the 
message "No Subscription." 

If you choose to subscribe, you can 
call HBO directly and give them your 
credit card number and the serial num- 
ber of your descrambler. Within 30 
minutes, the HBO movies are coming 
through the descrambler. What's star- 
tling about this, and also predictive, is 
that HBO turns on your particular de- 
scrambler from its central offices via the 
satellite signal which is beaming all 
across the country. Within that signal, 
for a brief time, is a special message to 
your individual descrambler. This facil- 
ity for pinpoint targeting is also now 
giving rise to pay-per-view services and 
individualized messages sent between 
the normal pictures. 

And there is a lot of space between 
the normal pictures. The vertical blank 
interrupt, that black line you see if your 
picture rolls, can contain considerable 
additional information. Bilingual or 
captioned movies; stereo audio; teletext 
and other printed data; and dozens of 
other kinds of communications can fit 
in that extra space. But none of this 
would have been possible without the 
advent of computers and their capacity 
for blazingly fast digital manipulation, 
One major byproduct of computer- 
ization is increased personalization, in- 
creased interactivity with the appliances 
around us. We can expect to see TV sets 
which will allow us to customize them 
to a degree previously impossible. Not 
only will we be able to establish pass- 
words for channels considered inappro- 
priate for younger members of the 
family, but we'll also be able to tell the 
TV to always turn to our favorite news 
broadcast, or even to recognize and re- 
cord any W. C. Fields movies. 

Further, the media itself can be- 
come more personalized. There can be 
more shows on less popular topics; 
more foreign movies; more special in- 
terest broadcasts — all because a small 
audience can support such narrowcast- 
ing through pay-per-view. 



w 



ANNOUNCING A 

FREE OFFER WITH A 

3,000-YEAR GUARANTEE. 

What a deal! Your first Shanghai" game's on usljust 
send lor your irce Shanghai demonstration disk which 
contains one tantalizing puzzle. It's guaranteed to 
whet your appetite for the billions of options on the 
complete disk. 

What makes us so sure? History.Shanghai is derived 
from the ancient oriental game of Mahjongg, which 
has captured players' imaginations for over 30 
centuries. 

Find out what a 3,000-year obsession is all about. 
Write for your free Shanghai Demo: 

Activision.lnc. 

P.O. Box 7287 

Mountain View, CA 94039 

Enclose a $3.00 check for postage and handling. 



•i«i'i>'"""rw«'* 



m 










ACTIVISTON^ 



ENTERTAINMENT SOFT\\'.-\RE 



Now avaiUblt for I BM PC/ 
rCjr. Tandy 1000. /\pplc II, 
Md^:illU)^h. Qimitxidiin: 
b4;l2B. Amiga, Alan ST 
and iampaltble compuicis. 
Coining soon for the 
Appk-IIGS. 



Ancient Tiles of Shanghai 



VkMS. 




JJumijoos 



-.3 



Characters 



SUM 

SfdSflns 



3l 



Ci>iiiiTitKliirr M, I2ii ind AmijiA jiy ri«irini.tV> pT CcmiiwdDir tlect™nif% Limited Apple II 
AppU- rit.S Mil Wktitanh *ti- itWfirwkMui Appir C*>tipairr Inr IBM PC imJ IV|1 an trWfcnwrt* 
Hlii(rm*jK'TuHiuM!*r>*M«.hinfti.wpor«hHi Tjoch UXXl ».( tr*d«iiift .nnjoili f orponnon 
Aun SI to J ir.kiiriiuik irf AUfi I iw^iraiKm ^|tpvr>^^ n thr irxMcin] itnirrurk nl .^iiiMsU'n 
ln( 1 I'MeA^iivHion 




Publisher James A, Caseiia 

Founder/£dlloriQl Consullonl Robert C Lock 
Editor In Chief Richcid Monsfield 

Managing Editor Kathleen Martinek 

Executive Editor Selby Boteman 



Editor, COMPUTEI 

& COMPUTEI'S GAZETTE 
Assistant Editor, COMPUTEI 
Production Director 
Editor, COMPUTEI'S Atari ST 

Disk & Magazine 
Technical Editor 
Assistant Technical Editors 
Asslstoni Editor, COMPUTfl's 

Alorl ST Disk & MagoJine 
Assistant Editor, COMPUTEl's 

GAZEHE 
Assistant Features Edilor 
Programming Supervisor 
EdllorlQl Programmers 
Copy Editors 

Editorial Assistant 
Submissions Reviewer 
Programming Assistants 
Executive Assistant 
Administrative Assistants 

Associate Editors 



Contributing Editor 



Lance Elko 
Philip I Nelson 
Tony Roberts 

Tom R. HaWI 

Ottis R. Cowper 

George Miller, Dole McBone 

Todd Heimorck 

Rhett Anderson 

Kothy yokol 

Patiick Parish 

Tim Victor. Tim Midkiff 

Tcmmie Taylor, Karen 

Uhlendort, Karen Siepak 

Corollne Hanlon 

David Hensley 

Dovid Floronce, Troy Tucker 

Debi Nash 

Julia Fleming, Ins Brooks, Mary 

Hunt, Sybil Agee 

Jim Butterfiald 

Toronto, Canada 

Fred D'Ignazio 

BlrminQham, Al 

David Thomburg 

Los Altos, CA 

Bi I Wilkinson 



COMPUTEI'S Book Division 

Editor 
Asslstoni Editors 
Director, Book Solos & 

Mofketing 



Stephen Levy 

Gregg Keizer, Ann Davtes 

Steve Voyatzis 



Production Monoger 
Art & Design Director 
Assistant Edilor, Art & 

Design 
Mechaniool Art Supervisor 
Arilsts 

Typesetting 
Illustrator 



irmo Swoin 
Janice I?, Fary 

Lee r^oel 

De Potter 

Dabney Ketrow, Robin Case 

Terry Cash, Corole Dunton 

Horry Blair 



Director ot Advertising 

Sales 
Associate Advertising 

Direclor 
Production Coordinator 



Peter Jotinsmeyer 



Bemard J, Theobald, Jr. 
Kothleen Hanlon 



Customer Service Monoger Diane Longo 
Dealer Soles Supervisor Orchid Tomayo 
Individual Order Supen/tsor Cossandro Green 
Recepllonlsl Anita Armfield 

Warehouse Manager John Wifflams 



Coming in Future Issues 

The Winter Consumer Electronics 
Stiow (CES): A Comprehensive Report 

SpeedScripf 80: Our Popular 
eO-column Word Processor for Apple li 

HyperScan: Mandelbrot Graphics 
for Commodore 64 

ST Outlook: A Hands-on Look 
at Desktop Publishing 

Disk COMpacker for IBM PC/PCjr 

Atari Disk Sector Editor 

Controlling Amiga Text Fonts 

Menu Planner: Computer Assisted 
Cooking for the Commodore 64, 
Apple II. ST, Amiga, IBM PC/PCjr, 
and Atari 400, 800, XL. and XE. 



Subscription Orders 

COMPUTEI 

P.O. Box 10954 

Des Moines, lA 50340 

TOLL FREE 

Subscription Order Line 

800-247-5470 

In lA 800-532-1272 



James A Caseilo, President 
r?ichard Mansfield, Vice Presldant, Editorial Director 
Ricnard J Marino, vice President. Advertising Sales 
cririslopher M. Savine, Vice President, Finance 8i Planning 



COMPUTED Publications, Inc. publishes; 

COMPUTE! 

COMPUTEI'S Gazette 

COMPUTEI'S Gazette Disk 

COMPUTEI'S 

Apple Applications Special 

COMPUTEI'S 

Atari ST Disk & Magazine 



Edllorlal ottices: 

Corporate otfices: 

Customer Service: 
Houts: 



32J West Wgndover Avenue 

Suite 200 

Greensboro, NC 27(108 USA 

825 7tti Avenue 

New Yorl<. NY 10019 

212-265-8360 

a00-346^i767 

On W 212-837-8525) 

9:30 A.M.-4:30 P.M. 

Monday-Fnday 



COMPUTEi 

Subscription Rates 

(12 Issue Year): 

us (one yr,) S24 

(two yrs,) S45 
(three yrs.) S65 
Canada and Foreign 
Surlace Moil 330 

Foreign Air 
Delivery S66 



M\V 



Audit BcrHg 



H*3iiir>f Publisheri Aisociilkxi 



Advertising Sales 




1. New England & 
Mld-Atlanflc 

Bernard J, Theobald, Jr. 
212-315-1665 
Tom Linl< 
212-315-1665 

2. Southeast & Foreign 

Harry Blair 
919-275-9809 

3. Midwest & 
Southwest 

Jerry Thompson 
3 12-72i!h5047 (Chicago) 
713-731-2605 (Texas) 
303-595-9299 (Colorado) 
41 5-348-8222 (California) 

Lucille Dennis 
415-348-8222 



4. West, Northwest & 

British Columbia 

Jerry Thompson 
41 5-348-6222 
Lucille Dennis 
41 5-348-6222 

5. Canada 

Harry Blair 
919-275-9809 



Director ol Advertising Sales: 

Peter Johnsmeyer 

Associate Advertising Director: 

Bernard J, Theobald, Jr. 

COMPUTEI Sales Office 212-315-1665 

Address all advertising materials to: 

Kathleen Hanlon 

Advertising Production Coordinator 

COMPUTEI Magazine 

324 West Wendover Avenue 

Suite 200 

Greensboro, NC 27408 



The COMPUTEI subscriber isst is made avoiobie to careMly screened organrjoticns with o product or service wh:ch 
may oe ot interest to our readers l( you prefer not to receive such mailings, please send an exact copy or your 
subscription labei to: COMPUTE! P O Boi 1 W55. Dos Moines, lA 50950. include o note Indicoting your prelerence to 
receive only your subscription 



Autriors ol monusoripts warrant that oil materials submitted to COMPUTEI ore orginal materials witn full ownership 
rights resident in said outhors. By submitting orticies to COMPUTE!, outhors acknov,r1edoe that such materials, upon 
acceptance for publication, become the exciusive properly of COMPUTE! Publications, Inc. No portion of this 
magazine moy be reproduced in any form without written permission from the publistier. Entire contents copyright 
?' 1 967 COMPUTEI Publications, inc [Rights to programs deve'oped and submitted by outhors are exploined in our 
outrior contract Unsolicited materials not accepted lor pubiication in COMPUTE wii! be returned if author provides 
a self-Qddressed stamped enveiope Prog'ams Con tape or disk) must occompany each submission. Printed listings 
are optional but heiplui Articles should be lurnished as typed copy (upper- and lowercase, please) with double 
spacing Each page of your article should bear the title of the article, dote and name ot the outhor. COMPUTE! 
assumes no iiability for errors in orticies or odvertisements. Opfiions expressed by authors are not necessoriiy those 
of COMPUTEI. 
PET. CBM. vic-2a and Commodore M are trademarks ot Conimcdore ATAf^i is a trodemork of Atari. Inc. 

Business Machines. Inc. ond/ot Commodore Electronics Limited TI-99/'1A is □ trademcrk of Texas Instruments, Inc. 

AppTe, Appre a. and Apple lies ore trademarks of Apple Computer Company Radio Shock Ccior Computer is a trodemork of 
IBM PC and PCjr are trademarks of International Business Mactiines. Inc Tondy. It>c 



It's not impossible to imagine TV 
eventually becoming so specialized that 
there would be channels devoted to, 
say, showing only Kubrick films, If that 
happened, whatever you might want to 
see or hear would always be on. 

Eventually, perhaps within the 
next five years, television will enter the 
third stage of its computerization: pro- 
grammability. When TV is sufficiently 
integrated with the VCR and other en- 
tertainment appliances, it will be possi- 
ble to teach the machines to work 
together for the viewer's benefit and to 
suit the viewer's personal tastes. One 
early example is the generalized remote 
control brought out by GE last year. 
You put it face to face with all your 
other remotes and simultaneously press 
the same buttons on each. The GE then 
memorizes all the codes and can be 
used in place of all your other remotes. 
Plans have been announced to in- 
troduce this year a controller with mac- 
ro capabilities, Not only does this 
device know what time it is; it can also 
learn a complicated series of keystrokes 
and be programmed to repeat them. 
Among the many uses for a macro con- 
troller will be its ability to act as if it 
were a well-trained servant performing 
a complex series of tasks — before you 
arrive at breakfast, for example. As- 
sume that you want to see the weather 
report first thing. Before you awake, the 
macro will be able to turn on the TV, 
change channels to the weather report, 
precisely adjust the volume, rewind 
your VCR, wait until the weather 
comes on, record just that part of the 
program, and then rewind again, wait- 
ing for your arrival. 

Such controllers could contain hun- 
dreds of personal macros, and the macros 
themselves could be chained together 
into a highly complicated series of ac- 
tions. Macro programming is just another 
word for computer programming. 

There will be some spectacular ad- 
vances in the coming years as the quali- 
ty and convenience of our domestic 
devices continue to benefit from the 
microprocessor revolution. And what- 
ever words are used in advertising, 
many of our household machines are 
clearly in the process of becoming more 
computer than appliance. 




'-^ 



Richard Mansfield 
Editorial Director 




"k,.^^ 



Today's Cure for 
tlie Term Paper Blues 



<. 



\ 




The term paper... sleepless nights, worry-filled d^, and no 
time left for aigrthing else. With all that orlanizin^ and 
wiitlng to do, the thought of just |ettin| started gives you a 
serious case of the blues. Bur computer and Iferm Sa.^es 
Wtiter" are the only cure. 

The Ifotetaken Helps you collect, save, sort and find in- 
formation. It might even help you find the perfect tcipic. 
The Otttliaet: Puts your ideas into subject groups and 
gives them the right flow, so jmir conclusion isn't part 
of your preface. 

Tbe VMteit A complete word processor that breaks writer's 
block and turns your thoughts into crisp, printed pages 
that look top-grade. 

Tbe Foatnoter & Bibliogtafiiy Cmpiler: No more late- 
night thumbing through style manuals. The Compiler does 
it for you, 

Iferm Paper Vfritex. Because making the grade doesn't have to 
be a full-time job. Or give you the blues. 

For Commodore 138, IBM PC, PQjr^ 

m Tandy 1000 and 100% Compatibles, 

W and Apple H Series Computers. 



m 



* j«f. 




PERSONAL CHOICE 



I IIS if i tridenurk <A CcmiaoiioH Elertrailci, Immsroa ^O^iWKip'llifir'tnMniuiki of 
^rtloail Boslaiss Midlines CoipotiUon. Iiinlj 1000 U a tMljaiirk ol ftnilj Corporstliin. Apple n li a 
bmark ol A^lCCinapu^et Int. Peramil Clwlci! Softwiie is i Iridemult ot.JWlTliiim, Uw, AetiAlon Is 
tts/reltsternd tratonMlt rfJiiirtalen, Inc. <. 1987 ActirislsB. 



COMMODORE'S 



New, Expandable 
Amiga 2000 



A Hands-On Report 

Philip I. Nelson, Assistant Editor 



Eighteen months after the debut of the 
Amiga 1000 personal computer, Com- 
modore is introducing a powerful 
next-stage machine: an easily ex- 
pandable, multitasking, multipro- 
cessing Amiga that can be configured 
by users in more ways than any previ- 
ous computer. Here's a firsthand look 
at Commodore's new Amiga 2000. 



When Commodore introduced the 
Amiga in n\id-1985, the machine 
was righdy hailed as a break- 
through in power, ease of use, and 
versatility. Without taking away 
any of the features that made the 
original Amiga such an important 
computer. Commodore is now pre- 
senting users with a machine that's 
a remarkable hybrid: an Amiga that 
can become just about any computer 
combination you want it to be. 

In this way. Commodore an- 
swers those critics who have said 
that the original Amiga was too 
expensive to be a home computer 
and not powerful enough for a 
business machine. The Amiga 2000 
can, in fact, bridge many different 
markets — from the under-$l,500 
entry-level to the multi-thousand- 
dollar powerhouse machines. 

On a related note. Commodore 
officials have also admitted that 

8 COMPirrei March 1987 



plans are well under way for an 
even lower-priced Amiga — func- 
tionally similar to the Amiga 
1000 — in the not-too-distant future 
(in addition to the marketing of the 
Amiga 2000). In this way, Commo- 
dore hopes to create an Amiga solu- 
tion for virtually any computer 
user's need. 

What does the new Amiga 
2000 offer? 

"The basic machine has one 
3Vz-inch drive, seven expansion 
slots, three drive ports, and a 200- 
watt power supply, for under 
$1,500 — plus a choice between a 
$300 monitor or a $500 monitor," 
says Clive Smith, Commodore's 
general manager for product mar- 
keting and development, He also 
notes that the Amiga 2000 is com- 
pletely software-compatible with 
the existing Amiga 1000, provided 
the software complies, as all com- 
mercial programs should, with the 
standards for version 1.2 of the op- 
erating system. (The 1.2 operating 
system fixes some bugs and adds 
many new features to the previous 
operating system.) 

"What you have," Smith adds, 
"is a machine with a low entry 
point [in terms of price], but which 
is more expandable than any other 
machine in the marketplace. Do 



you want eight megabytes of extra 
memory? Plug it in. If you want a 
5V4-inch drive, an 80-megabyte 
hard drive, you plug them in. What 
we have is a coprocessing environ- 
ment with the Amiga's 68000 chip 
and the IBM's 8088. If you want 
math coprocessors [an Intel 8087 or 
Motorola 68881], a video digitizer, 
a multifunction card next to your 
IBM card, you just plug them in. 
What we're saying is that you've 
got a coprocessing, multitasking 
environment. It's a low-price ma- 
chine that you can easily upgrade to 
whatever level you want," 

Low Price 

And Expandability 

Two of the keys to expandability at 
low cost are the optional Amiga 
Bridge card, which allows the 
Amiga to run IBM PC software (see 
below), and PC-compatible expan- 
sion slots on the machine's main 
circuit board. The fierce competi- 
tion among PC-clone manufactur- 
ers has driven the price of IBM 
peripherals and enhancement cards 
to amazingly low levels. PC- 
compatible 5y4-inch floppy drives 
can be found for less than $100, and 
you can buy a high-quality ten- 
megabyte hard card (hard disk 
drive on a single plug-in card) for 
less than $400. 

Other PC enhancements such 
as enhanced graphics adapter 
(EGA) cards follow similar pricing 
patterns. The ability to install an 
inexpensive hard disk is especially 
attractive because you can use it for 



Amiga files as well as IBM files. 
Even including the cost of the 
Bridge card, that gives you a fast, 
large-capacity hard drive for less 
than you might pay for an Amiga- 
specific stand-alone unit (not to 
mention the fact that the drive goes 
inside the case rather than taking 
up precious desk space). 

"Everything we said about the 
original Amiga [1000] is true," says 
Gail Wellington, director of product 
marketing and development. "It is 
an expandable machine with an 
open architecture. However, for ex- 
panding the machine in a practical 
sense — in terms of how much space 
it requires and where you can get 
the items you need — the original 
design is not the optimum solution. 
For the Amiga 2000, we were look- 
ing for a machine that could be 



expanded and upgraded in a practi- 
cal way, both ergonomically and in 
terms of sources [for hardware]. We 
wanted people to be able to config- 
ure the system easily to meet their 
own requirements." 

The immediate market for the 
Amiga 2000 is obvious. It appeals 
to anyone who likes the Amiga for 
its fast processing speed and super- 
lative graphics, but who also wants 
the ability to run IBM PC software. 
Since IBM and its workalikes still 
dominate the office environment, 
the 2000 will be attractive to profes- 
sionals who bring work home. And 
PC compatibility helps Commo- 
dore fill some Amiga software gaps. 
Many Amiga software titles are 
now available, but the machine is 
still somewhat weak in the area of 
mature business and professional 




, I ■■''-'.• i- i- }' r i , -■■• ' - -^•' \ 




software. With a Bridge card, you 
can take immediate advantage of 
the large library of existing IBM PC 
software. 

There are some applications 
where an Amiga-PC combination 
simply makes excellent sense. For 
example, the Amiga 2000's large 
memory and powerful graphics 
make it a natural for desktop pub- 
lishing applications. But many of 
the documents published in a busi- 
ness environment would be gener- 
ated on PC systems. With a Bridge- 
equipped Amiga 2000, you could 
read the documents directly from 
an IBM floppy disk and process 
them for publishing on the Amiga 
end of the system. 

But the Amiga 2000 can give 
you more than the equivalent of an 
IBM PC and an Amiga sitting on the 
same desk, since the two processors 
communicate over a shared memo- 
ry area. In fact. Commodore sees 
the opportunity for new hybrid 
programs that exploit the best fea- 
tures of both machines. An applica- 
tion, for instance, might use the 
PC's 8088/8087 combination for 
number crunching and pass the re- 
sults to the Amiga to be displayed 
in high-quality color graphics. Ad- 
mittedly, this category of software 
has yet to be created. But given the 
Amiga's ability to multitask (run 
more than one program at a time) 
and the open design of the 2000, it 
may be only a matter of time before 
such applications emerge. 

Externals 

The Amiga 2000 is instantly recog- 
nizable as a different machine from 
the 1000. Although its footprint 
(the physical shape and size) is 
about the same, the case is consid- 
erably taller to make room for extra 
internal hardware and expansion 
slots. The front panel has room to 
mount three disk drives; two S'A- 
I inch drives and one half-height 5 V4 - 



The Amiga 2000 takes up about the 
same amount of desk space as the Amiga 
1000, but its case is taller to hold addi- 
tional disk drives and internal expan- 
sion cards. The front panel can hold two 
5%-inch disk drives and one S'A-inch 
drive. This particidar model has tivo 
3'/2-inch floppy drives and an iftternally 
mounted hard disk. A 5'/4-inch drive can 
be installed in the slot below the two 
smaller drives. 

Match 1987 COMPUTEI 9 



When you want to talk computers. . 



HOME COMPUTERS. 



Atari Computers 

520ST Monochrome System $619.00 

520ST Color System 789.00 

1040ST Color System 999.00 

800XL 64K Computer 69.99 

65XE 64K Computer 89.99 

130XE 132K Computer 129.00 

Atari Peripherals 

1010 Cassette Drive 49.99 

1020 Color Printer 29.99 

1050 Disk Drive 129.00 

835 300 Baud Modem 24.99 

850 Atari Interface 109.00 

M301 300 Baud Modem 39.99 

XM801 SOColumn Printer 179.00 

XM804 ST Printer 169.00 

ICD PR Connection 59.99 




Amiga System 4 1 i qq 

Package XJL^w 

Includes: Amiga CPU, 256K RAM expan- 
sion, RGB Monitor, Amiga DOS, Basic, 
Tutorial, Kaleidoscope, Voice Library. 
Commodore Computers 
Commodore-64C 64K Computer.. 189.00 

Commodore-64 64K Computer 149.00 

Commodore-64 System 479.00 

Commodore-128 128K Computer. 259.00 

Commodore-1 28 System 759.00 

Amiga 1000 256K Computer 849.00 

Commodore Peripherals 

1530 Data Cassette 34.99 

1660 Commodore Modem 59.99 

1670 Commodore Modem 139.00 

1541C Disk Drive 189.00 

1571 Disk Drive 249.00 

1802 Color Monitor 189.00 

1902 Color Monitor 299.00 

Amiga 1010 3V2" Ext. Drive 219.00 

Amiga 1020 5V4" Ext. Drive 189.00 

Amiga 1080 RGB Monitor 269.00 

C128 512K Expansion Board 179.00 

PPI Parallel Printer Interface 34.99 

Xetec S/Graphix 8K 69.99 

Micro R&D MW350 44.99 



MS/DOS SYSTEMS. 




MULTIFUNCTION CARDS. 



PC-TOO 20 Meg $/vrtQ 
XT-Compatible ^yjjy 

AT&T 6300 from $1699.00 

Compaq from 1699.00 

Cordata from 899.00 

IBM-PC from 1099.00 

IBM-XT from 1699.00 

IBM-AT from 2699.00 

Leading Edge from 999.00 

Toshiba 1100 Plus from 1749.00 

Zenith from 999.00 

AST 

Six Pak Plus PC/XT $169.00 

Six Pak Premium PC/XT ..349.00 

Advantage-AT 128K 339.00 

Everex 

EV-221 Evergraphics Mono 139.00 

EV-640 Edge Card 259.00 

Hercules 

Color Card 159.00 

Graphics Card Plus 209.00 

Fifth Generation 

Logical Connection 256K 299.00 

IDEAssocJates 

iDE-5251 Local Emulator 579.00 

Intel 

1110 PC Above Board 279,00 

Intxjard 386K OK Call 

NEC 

GB-1 EGA 409.00 

Quad ram 

Quad Ega+ Graphics Adapter.... 339.00 

Silver QuadtDoard. 239.00 

Expanded Quadboard 119.00 

VIDEO 7 

EGA Deluxe 389.00 

Zuckertioard 

Color Card w/Parallel 89.99 

Monochrome Card w/Parallel 99.99 

576K Memory Card 59.99 



DRIVES. 



Allied Technology 

Apple Half-Heights $109.00 

Controller Card 39.99 

CIVIS 

Drive Pius 20MB internal Card.... 399.00 

Everex 

Stream 20 20MB Tape-Backup.... 669.00 

Genie Technology 

210 H 10 -I- 10 subsystem 1749.00 

Indus 

Atari GT Disk Drive 199.00 

Commodore GT Disk 6rive 199.00 

Iomega 

A210H 10 + 10 Bemoulli Box.. 1899.00 

A220H 20 + 20 Bernoulli Box 2499.00 

Irwin 

110 D 10MB Tape backup 369.00 

Mountain Computer 

Drive Card 20MB Intemal Card. ..649.00 

A220 20 -I- 20 Subsystem 2199.00 

Racore Jr. Enhancements 

Jr. Expansion Chassis w/DMA 319.00 




DISKETTES. 



Seagate ST-225 ft^oo 
20 MB Kit ^Oo9 

Toshiba 

Half-Height 360K internal 89.99 

Maxell 

MD-1 SS/DD 5Va" $8.99 

MD-2 DS/DD 5V4" 10.99 

MD-2HD Hi-Density SVi" 21.99 

MF-1 SS/DO 3V2" 12.99 

MF-2 DS/DD 3V2" 21.49 

CS-500 20Mb Streamer Tape 11.99 

CS^OO 60Mb Streamer Tape 13.49 

Sony 

MD1 SSDD SVi" 8.49 

MD2 DS/DD 5Vi" 9.99 

MD-2HD Hi-Density 5V4" 22.49 

MFD-1 SS/DD 3V2" 14.49 

MFQ-2 DS/DD 3Vz" 20.49 




■^ 







COMPUTER MAIL ORDER 



When you want to talk price. 



MONITORS. 



Amdek 

Video 310A Amber TTL $149.00 

Color 722 RGB, CGA/EGA 499.00 

Magnavox 

8CM515 RGB Monrtor-80 289.00 

7BM623 PC Monitor-80 Amber 99.99 

NAP 

873 14" Multimode 549.00 

NEC 

12" TTL Green or Amber 129.00 

JC-1401P3A Multi-Sync Call 

Princeton Graphics 

MAX-12 12" Amber TTL 169.00 

HX-12 12" Color RGB 429.00 

HX-12E 12"RGB/EGA 499.00 

Quad ram 

8460 Quadchrome Enhanced 499.00 

Taxan 

640 12" Hi-Res RGB 529.00 

Zenltli 

ZVM-1230 12" Green Composite... 99.99 



MODEMS. 



Anchor 

64S0 C64/128 1200 Baud $119.00 

Omega 80 Amiga 129.00 

VM520 ST520/1040 1200 Baud... 139.00 

Expressi PC-1200 Half Card 149.00 

Everex 

Evercom 1200 Baud Inlernal 129.00 

Hayes 

Smartmodem 300 Extemal 139.00 

Smartmodem 1200B Intemal 359.00 

Smartmodem 2400B Internal 539.00 

Practical Periphefals 

Practical Modem 1200 Extemal... 159.00 

Quad ram 

Quadmodem II 1200 Baud 299.00 

Supra 

MPP-1064 AD/AA C64 69.99 

1200AT 1200 Baud Atari 149.00 




U.S. Robotics * ^ _ ^ 

1200 Baud Internal^ 129 



PRINTERS. 



Canon 

LBP-8A1 Laser, 8 Page/MJn $1899.00 

Citizen 

MSP-10 160 cps, SOColumn 319.00 

MSP-20 200 cps, 8K Buffer 349.00 

Premier 35 35 cps Daisywheel.,.. 499.00 
C.ltoh 

8510-SP 180 cps, BOColumn Call 

310-SEP Epson/IBM 80-Column Call 

Cordata 

The Desktop Printshop Laser 2199.00 

Diablo 

Model 635 RO Daisy\wheel 895.00 




Epson LX-86 *ooQ 

120 cps, Dot IVIatrix^2o9 

FX-85 160 cps, SOColumn Call 

FX-286 160 cps, 132-Column Call 

EX-eOO 300 cps, SO-Column 479.00 

LOSOO 180 cps, 24-Wire Printhead..Call 
Juki 

6300 40 cps Daisywheel 699.00 

6100 10 cps Daisywheel 429.00 

5510C Color Dot Matrix 449.00 

NEC 

P5, P6, P7 Pinwriter Series Call 

3550 35 cps Spinwriter 779.00 

Okidata 

ML-182 120 cps, eOColumn 219.00 

ML-193-H 200 cps, 132-Column Call 

ML-292 200 cps. 80-Co!umn Call 

ML-293 200 cps, 132-Column Call 

Panasonic 

KX-1080i 120 cps, 80Column 219.00 

KX-10g2 180 cps, 7K Buffer 339,00 

KX-1592 180 cps, 132-Column 439.00 

Star Micron Ics 

SG-10C 120 cps, C64 Interface... 199.00 

NX-10 120 cps, 80-Column 219.00 

SG-15 120 cps, 132-Column 379.00 

Texas Instrument 

TI-855 150 cps, 80<;olumn 599.00 

Toshiba 

P321 216 cps, 24-Pin Prjnthead.. .479.00 

P341 216 cps, 24-Pin Printhead... 589.00 



SOFTWARE. 



Ansa 

Paradox $459.00 

Ashton-Tate 

d-Base II! -n 429.00 

Boriand 

Reflex 99.99 

LighteningAA/ord Wizard 99.99 

Central Point Software 

Copy II PC 24.99 

5th Generation 

Fastback 89.99 

Funk Software 

Sideways 44.99 

livisi 

Optlmouse w/Dr. Halo 119.00 

lUS-Sorcim 

Supercalc IV 319.00 

LIfetree 

Volkswriter III 159.00 

Lotus 

Lotus 1-2-3 329.00 

Meca 

Managing Your l\toney 119.00 

MicroPro 

Wordstar 2000 Plus 299.00 

Wordstar Prof. w/GL Demo 189.00 

Mlcrorim 

R:Base System 5 339,00 

Microsoft 

Microsoft Word 3.0 289.00 

Microsoft Mouse 129.00 

MIcrostuf 

Crosstalk XVI 89.99 

Multimate international 

Multimate 3.3 269.00 

Multimate Advantage 319.00 

Norton Software 

Norton Ultilities 3.1 49.99 




$209 



Satellite Systems 
Word Perfect 4.2 

Software Publishing Group 

PFS: Professional Write 129.00 

Clickart Personal Publisher 129.00 

The Software Group 

Enable 369.00 



In the U.S.A. and in Canada 

Call toll-free: 1-800-233-8950. 

Outside the U.S.A. call 717-327-9575 Telex 5106017898 
Educational, Governmental and Corporate Organizations call toll-free 1-800-221-4283 
CIVIO. 477 East Third Street, Dept. A203, Williamsport, PA 17701 
ALL MAJOR CREOrT CARDS ACCEPTED. 

POLICY; Add 3% (mimmutn $7.00) shipping and handling. Larger shipments may require additional charges. Personal and company checks require 3 weeks 
to clear. For (aster delivery use your credit card or send cashier's check or bank money order. Pennsylvania residents add 6% sales tax All prices are U S A 
pnces and are sub|ecl to change and all items are subject lo availability. Defective software will be replaced with the same item only Hardware will be replaced 
or repaired at our discretion within the terms and limits of the manufacturer's warranty. We cannot guarantee compatibility. All sales are final and returned shioments 
are sub|ecl to a restocking fee. '^ 



1- = 


l^,,_ . .™ 




The Amiga 2000's keyboard, mouse, and joystick cables plug into the front panel of 
the computer. In this photo, the joystick port is occupied by a security device 
("dongle") for runnitig a copy-protected commercial program. 



inch-drive (see photo). 

The basic machine includes 
one 3V2-inch floppy disk with a ca- 
pacity of 880K, just as on the Amiga 
1000. The front panel also has 
space to mount one extra SVz-inch 
drive and a half-height PC-compat- 
ible 5 'A -inch drive. This arrange- 
ment is not only compact, but it also 
provides a number of storage op- 
tions, since the extra drive spaces 
can hold either floppy or hard 
drives, and the Bridge card allows a 
hard drive to be shared by both the 
PC and the Amiga. 

The 2000's mouse, joystick, 
and keyboard ports are now 
grouped together on the front of the 
housing. This is more convenient 
than the lOOO's configuration, 
which puts the mouse and joystick 
ports on the right side and the key- 
board cable underneath and to the 
rear. The keyboard cable also has a 
sturdier connector than the cable on 
the 1000, which uses a modular 
telephone-type connector. 

The rear panel of the new 
Amiga looks something like the 
back end of an IBM PC, with vertical 
slots that can be opened up for con- 
nectors of various types. Unlike the 
original Amiga, which has nonstan- 
dard connector configurations for 
the printer and serial ports, the 2000 
has the same parallel printer port 
and RS-232 serial port connectors as 
the IBM PC. The industry-standard 
ports permit you to use non-Com- 
modore printer, modem, and cables 
if you wish — an important consider- 
ation for IBM compatibility. 

12 COMPUTEI March 1987 



Video And Sound 

As on the 1000, the Amiga 2000's 
graphics and sound are controlled 
by a triumvirate of custom chips 
code-named Agnes, Denise, and 
Paula. The basic graphics and 
sound capabilities of the two ma- 
chines are identical: The 2000 has 
all the screen modes of the 1000 
and includes the same four-channel 
sound system and software-based 
speech synthesizer. 

Commodore is offering two 
new monitors for use with the 
Amiga 1000 or 2000. The A2002 
monitor is switchable between RGB 
and composite video, like the cur- 
rent 1080 monitor. The A2080 is a 
special long-persistence display 
unit designed specifically for the 
highest resolution graphics modes. 
The screen phosphors in a long- 
persistence monitor hold their glow 
longer than ordinary phosphors, a 
feature which overcomes the prob- 
lem of video jitter in the Amiga's 
special screen modes. 

Composite video output is not 



standard on the 2000. If you wish to 
use a composite monitor or televi- 
sion, you must purchase the A2060 
composite/RF modulator board, 
which goes into a special video slot 
on the motherboard. This interface 
mounts internally to reduce prob- 
lems with radio frequency interfer- 
ence (RFl). 

For music enthusiasts. Com- 
modore will offer the A1400 MIDI 
Interface as an option. Unlike the 
Atari ST's built-in MIDI interface, 
which includes only MIDI IN and 
OUT, the A1400 interface supports 
MIDI IN, OUT, and THROUGH. 

Keyboard 

A number of changes are visible in 
the 2000'5 larger 95-key keyboard 
(see keyboard photo). The main 
keyboard cluster is nearly identical 
to the 1000 keyboard, except that 
the Shift, Tab, Backspace, and Re- 
turn keys have been enlarged and 
labeled with PC-like arrows rather 
than words. On the Amiga 1000 
keyboard, the Delete and Help keys 
are easy to hit by accident, since 
they're sandwiched very close to 
the Return key. The 2000's key- 
board solves this problem by relo- 
cating Delete and Help away from 
the main cluster. 

The four cursor keys have been 
relocated and moved into a T con- 
figuration. The numeric keypad fol- 
lows the standard Teletext 
configuration and has also been 
moved somewhat to the right. The 
forward faces of some keypad keys 
contain legends such as Num Lock 
and Pg Dn which are meaningful in 
many PC applications. 

The keys themselves are nicely 
sculptured and the key action is 
solid, with a more positive feel than 
that of the 1000. While the new 
keyboard is a bit wider than the old 
one, it is also considerably less clut- 



t:!tm 




xmiTh 



.umB^mtm 






t r r r r r r r r i' t 
r r /' r r r r r f ~ 

.. ^. y J. y y |- J< .|, 

1 




The keyboard of the Amiga 2000 has been enlarged and redesigned for keyboard- 
interisive applications such as word processing. Some of the keycaps contain legends 
for IBM PC applications. 



tered. All in all, the modifications 
make the Amiga 2000 keyboard 
substantially more efficient for 
word processing and other key- 
board-intensive uses. 

Inside The 2000 

Internally, the Amiga 2000 has ex- 
actly the same microprocessor as 
the 1000 model: a 16/32-bit Mo- 
torola 68000, running at a clock 
speed of 7,14 megahertz. However, 
the system can be easily upgraded 
for even greater speeds or number- 
crunching power. Commodore in- 
tends to market an optional 
accelerator board which contains a 
32-bit Motorola 68020 processor 
running at 14 MHz, a memory 
management unit (MMU), and 
cache memory. This processor 
could work either in parallel with 
the resident 68000 or as a replace- 
ment for it. The machine can also 
accept a Motorola 68881 math co- 
processor to speed up math opera- 
tions. The Bridge card allows 
coprocessing with an Intel 8088 
8-bit processor and optional 8087 
math coprocessor, as well. (A math 
coprocessor, of course, depends on 
software that takes advantage of its 
special capabilities. Many calcula- 
tion-intensive programs for the PC 
check for the presence of an 8087 
coprocessor and use it if it's avail- 
able. Since the 68881 is newer than 
the 8087, it may be a while before 
you can buy Amiga software that 
exploits the Motorola math chip.) 

The 2000 comes with a full 
megabyte (over one million charac- 
ters) of memory, and it offers a 
choice of two different memory ex- 
pansion boards. The A2050 RAM 
expansion board can be supplied 
with an extra half-megabyte, one 
megabyte, or two megabytes of 
RAM. If that doesn't sound like 
enough, you'll be able to buy a 
bigger memory board populated 
with either four, six, or eight mega- 
bytes of extra RAM. The system is 
designed to handle a maximum of 
nine megabytes of memory. 

Another welcome improve- 
ment is the elimination of the Kick- 
start disk. The 2000 has 256K of 
ROM containing the operating sys- 
tem software which the Amiga 
1000 has to load from disk. This 
simplifies and speeds up the pro- 
cess of booting the system, since 
you now need to insert only one 



ITS A WORD PROCESSOR 
IT'S AN OUTLINER 



IT'S A FLASH CARD MAKER 



IT'S A CALENDAR 



IT'S A GRADE KEEPER 



IT'S A CALCULATOR 




Homeivorker from Davidson is an easy-to-use productivity 
program that helps students manage their coursework 
through six integrated modules: Word Processor, Qutliner, 
Flash Card Maker, Calculator, Calendar and Grade Keeper. 

The program also features on-screen tutorials, fact finder 
files and a clipboard for easy transfer of materials from one 
module to another. 

The Homeivorker software is packaged in a deluxe student 
organizer, along with a variety of study accessories: 



easy-to-follow 
instruction manual 
study skills book 
calendar section 
phone/address book 
nine separate subject tabs 



fact finder-a quick reference 
guide for students 
highlighter and felt tip pen 
metric ruler 
8'/2"x 11" notepad 
disk holder 



$3995 



suggested retail price 
Ask your dealer for this Davidson program 
or call us directly for assistance: 

(800) 556-6141 (213) 534-4070 



{OuI-iuIl- L.iliturni.i* 



«C>ilir^>rni.i OnK I 



Davidson. ^ 

Educational software ^^^^ 
that works ^^-"^ ■^'^ 



O* 



,-0^^^ 



^\6' 





An overhead look at the inside of an Amiga 2000, showing the expansion area to the 
left and the power supply and internal floppy drives to the right. The bulk of the 
Amiga's internal circuitry, including its 68000 microprocessor, is not visible from 
this angle. 



disk rather than two. 

There's a second reason, apart 
from the convenience factor, why 
Amiga owners and software devel- 
opers should rejoice at the demise 
of Kickstart, A computer manufac- 
turer ordinarily doesn't move an 
operating system into ROM until it 
is satisfied that the system has 
reached final, debugged form; sys- 
tem software is more difficult to 
update once it has been "graven in 
stone" in ROM. The fact that Com- 
modore has taken this step should 
increase everyone's confidence in 
the reliability of the system as a 
whole. 

The accompanying photo 
shows the Amiga in an overhead 
view with its entire housing re- 
moved except for the backplate. 
(The front of the machine faces the 
bottom of the page.) In the lower 
right corner are two heavily shield- 
ed 3V2-inch floppy drives. The met- 
al cage at the upper right houses the 
machine's power supply, and the 
left area contains expansion slots. 

Commodore is offering an op- 
tional hard disk/ SCSI controller 
board for the Amiga 2000. The card 

14 COMPUTEI March 1987 



includes two hard disk interfaces: 
The ST 506-compatible interface al- 
lows you to connect up to two 
PC/XT hard drives, and the SCSI 
interface will accept SCSI-standard 
devices on either a 50-pin SCSI 
connector or a 25-pin Macintosh 
Plus-compatible connector. In ad- 
dition to hard disk drives, this card 
lets you add a high-speed tape 
drive for backing up a hard drive's 
contents. 

To insure adequate power for 
extra drives and cards, the Amiga 
2000 provides a hefty 200-watt 
power supply. Computerists who 
like time- and date-stamping will 
be glad to learn that the 2000 also 
includes a built-in clock/calendar 
with battery backup. 

Slots Galore 

Inside the case of an Amiga 2000 
are nine different expansion slots, 
some of which can serve a dual 
function. An 86-pin expansion slot 
extends the Amiga's CPU (Central 
Processing Unit) bus; if you up- 
grade to a faster 68020 processor, 
this slot holds the CPU card. The 
video slot can hold an interface for 



the optional composite/RF modu- 
lator or other video hardware such as 
the Genlock video mixing system. 

The remaining seven slots ex- 
tend the Amiga's system bus and 
provide slots for IBM PC cards. Five 
of these are 100-pin Amiga slots 
and two are PC-specific. However, 
two of the 100-pin slots can also be 
used as PC slots, so you have the 
equivalent of four PC slots in all. 

The overhead photo illustrates 
the slot layout inside the Amiga's 
housing. The Amiga CPU slot is the 
long connector just below the cen- 
ter of the board. To its left are the 
five 100-pin Amiga slots, the long- 
est slots in the system. Two of these 
are shared with the four PC slots, 
which are grouped in the upper left 
comer from this view. 

The two innermost PC slots are 
PC/AT-compatible, while the 
shorter, outermost PC slots are 
PC/XT-compatible. For those who 
aren't familiar with the latest IBM 
acronyms, a PC/XT is essentially 
the familiar IBM PC with some 
ROM upgrades and a built-in hard 
disk drive. A PC/AT is a signifi- 
cantly different machine, with a 
true 16-bit microprocessor (the 
80286), a much faster hard disk 
drive, and some additional expan- 
sion slots to take advantage of the 
80286 processor's greater address- 
ing range. The Amiga's circuit 
board is drilled for AT connectors in 
the outer PC slot positions, imply- 
ing that you can upgrade all the PC 
slots to the AT level just by install- 
ing two more connectors. 

Plug-In IBM PC 

As you've undoubtedly surmised, 
the reason the Amiga 2000 has slots 
for IBM PC hardware is that it can 
run PC software vrith the aid of an 
optional Amiga card known as the 
Bridge. This card, which contains 
an 8088 processor, is functionally 
very similar to the Sidecar accesso- 
ry now available for the Amiga 
1000. (Sheldon Leemon's "Amiga- 
View" column in this issue has a 
hands-on description of the Side- 
car.) There are two main differences 
between the two accessories. The 
Sidecar lives in a box that connects 
to the side of the Amiga 1 000, and it 
includes a built-in S'A-inch disk 
drive. The Bridge plugs into an in- 
ternal slot in the Amiga 2000, and it 
does not include a 5 'A -inch drive 



r n I 






hpur 






r 



' [' r I r.' 



WINNER OF "THE EDITORS CHOICE AWARD"- PC MAGAZINE 

Software that helps you manage any combination of investment portfolios more 
efficiently: stocks, bonds, currencies, options, commodities, mutual funds, and 
MORE. An easy, quick to learn alternative to the massive "professional" 
systems, but with all of their features and flexibility. 

"Eas,y{o learn, easy to use, ...gives serious investors many of the tools 
used by professionals. A four-disk rating!"- INFOWORLD 

rJDWJ'i'WDlli:^: 

IPS Automatically Updates your Portfolios: using the latest data from your 
preferred on-line service. The built in integrated telecommunications module 
is pre-set to receive Dow Jones, CompuServe, The Source and InfoGlobe. 
Timely Alerts with "Memo" Function : automatically advises you of option 
expiry dates, critical short term/long term changes, or your own personal 
deadlines. 

' 'A very complete investment package. ..a lot of thought has gone 
/ntofAeei/ras. "-PERSONAL COMPUTING 

Flexible and Intuitive: display, sort, compile, manipulate and print-out your 
investmentdata exactly as you wantit. By portfolio, by security, or usingawhole 
menu of helpful criteria. 

Powerful Analytical Features Include: • "Raise Money" • "Splits/ 
Dividends" • "Cash and Margins" • "Suppose or What If" Functions 
and many more. The combined result? More profitable investment decisions, 
with less work. 

"It's dangerous to look at any software package and say 'Thisis the one', 
but this one comes very close. . . a rich variety of information formats 
and reportting options."- COMPUTERIZED INVESTING 

The Isgur Portfolio System. The investment management program designed 
by Lee Isgur, Senior Vice-President of PaineWebber, New York, and one of the 
world's leading financial analysts. 

' 'The developers obviously consulted with a stockbroker who 
knows his business."- fC MAGAZINE 



J 



LiYsitnl 



! 



TM 




dztBjndly puy/Bj'M.j 
pi bmy io ii^bI^^ 

-FORTUNE MAGAZINE'S 
1987 INVESTORS GUIDE 

The Isgur Portfolio System is Only $249^^' 
on IBM PC and Compatibles or $199^^' 
on The MACINTOSH and Atari ST. 
Try The Isgur Portfolio System for 30 days, on 
a no-risk trial basis, call us and we 11 tell you 
bow. Call 1-800-387-5707 or you can buy IPS 
from your favorite software retailer. 



Now Available For Your IBM PC, PC-compatible, Atari ST and MACINTOSH 



"p^,-,i'i 



•dlsk»foronly^l0.00* wilh the return of 



BATTERIES 
INCLUDED 



I MCtUDBt. as ITM i 

tkn'l find lh^( ^aiii 
1 Sm. 137570? HI 



•I Sciwt. Bicltmied Hill. OniKio. C». 
-*- it <ir«ct tfo- *■- *■ " 



I, US m- 1411! tn.«Mt, tas^MK MnaiRlnftVljtn nil 
' !ti< iiriti giiu SS SO l« farif tut tmlHiig. For prntna vimt pl«i 



-A^-^y 



Integral 
dutions 




The Amiga Bridge card supplies everything which the A?iiiga 2000 needs to run 
IBM PC software, including an Intel 8088 microprocessor, 512K of RAM, and a 
floppy disk controller for S^A-inch PC-compatible floppy disk drives. The board can 
also accept an Intel 8087 math coprocessor. 



(however, it does include a disk 
controller; see below). 

The Bridge is in essence an IBM 
PC, all on a single plug-in card. The 
basic card (model A2088) is 
PC/XT-ccmpatible, with a 16K 
Phoenix operating system kernel in 
ROM, 512K of RAM, and MS-DOS 
2.11 on disk. Commodore will also 
offer a PC/AT-compatible Bridge 
card (model A2286) which is based 
on the more powerful 80286 micro- 
processor rather than an 8088. The 
Bridge must go in one of the two 
shared Amiga/PC slots. However, 
it can go in either shared slot, which 
lets you choose between three 
Amiga slots and three PC slots, or 
four Amiga slots and two PC slots. 
Incidentally, both the Bridge card 
and the Amiga's motherboard have 
the appearance of finished, de- 
bugged products; neither circuit 
board contains any jumper wires or 
other evidence of last-minute 
modifications. 

The accompanying photo 
shows the layout of the basic 
Amiga Bridge card. Just to the right 
of the board's center is the 8088 
microprocessor. The empty socket 
above the 8088 is where you would 
plug in an 8087 math coprocessor. 

The three large, square compo- 
nents on the Bridge card are custom 
chips which presumably perform 
address decoding and other "glue" 
functions needed to make the 
Bridge work as a whole. Commo- 
dore owns the MOS Technologies 
company, which enables it to de- 
velop and manufacture custom 
chips of this type more inexpen- 
sively than other personal com- 
puter companies. 

The large chip at the top of the 
board is the main component in the 

16 COMPUTE) March 1<?6? 



onboard floppy disk controller 
(FDC) interface. The Bridge's flop- 
py disk interface can support one 
internal floppy and up to three daisy- 
chained external floppies. If you in- 
stall a 5 ¥4 -inch floppy drive in the 
Amiga's front panel, it is controlled 
via the hardware on the Bridge 
card. 

To the left of the FDC chip, 
arranged in two rows of 8, are 16 
chips that yield a total of 512K 
RAM. These chips appear to be 
socketed, by the way, so it's con- 
ceivable that you could perform a 
future memory upgrade by simply 
swapping in larger-capacity RAM 
chips. 

The rest of the PC system is 
emulated on the Amiga side. To run 
a PC application, the Amiga recon- 
figures its keyboard as a PC/XT 
keyboard, emulates the PC printer 
port on its own Centronics port, 
and displays the PC's video output 
in both monochrome and color. 
Supplying these services through 
software allows Commodore to 
keep the Bridge's chip count — and 
thus, its manufacturing cost — im- 
pressively low. The Bridge contains 
only about 50 chips, compared to 
well over 200 chips on any reason- 
ably configured IBM PC. 

If you're interested in how 
such feats are achieved, the techni- 
cal documentation for the Bridge 
card makes fascinating reading. For 
communications between the two 
processors, 1 2 8K of dual-ported, or 
shared, memory is used. Dual-ported 
memory can be "seen" in the ad- 
dress spaces of both processors, al- 
though not all of it is accessible by 
both the 8088 and the 68000. The 
2000 uses 64K of this RAM for gen- 
eral data exchange, 32K for the PC's 



color video display, 8K for the 
monochrome display, and 8K for 
emulating PC input/output regis- 
ters. The remaining 16K is used to 
orchestrate the whole process. 

Does It Work? 

In the world of PC clones, one of 
the toughest tests of IBM compati- 
bility is to run Flight Simulator. At 
Commodore, we saw an expanded- 
memory Amiga 2000 run Flight 
Simulator for the IBM PC on one 
screen while it ran Superbase on a 
second screen and ran two copies of 
Aegis Draw Plus on third and fourth 
screens. That's three full-blown 
Amiga applications plus a proces- 
sor-intensive PC application, all 
running at the same time. Running 
from the Bridge, the flight simulator 
program took off, flew the plane, 
and updated the scenery as fast as it 
would on an ordinary PC. 

To the Amiga's multitasking 
operating system, the PC applica- 
tion is just another task to run. Of 
course, since the PC's MS-DOS op- 
erating system cannot multitask, 
and the Bridge card has only a sin- 
gle 8088 processor, you're limited 
to running one PC application at a 
time. A PC screen can be "frozen," 
however, for reference from anoth- 
er PC application. 

Who will buy the Amiga 2000? 
For anyone who uses an IBM PC at 
work, or who prefers not to give up 
the vast base of available PC soft- 
ware, the Amiga 2000 may well rep- 
resent the best of both worlds. The 
Amiga end of the system offers 
speedy processing and excellent 
graphics and sound, while the 
Bridge card can run anything that 
runs on an IBM PC. But the design 
of the 2000 shows that Commodore 
has more in mind than simply ex- 
ploiting an immediate market niche. 

The flexible, completely open 
design of the Amiga 2000 puts it in 
a strong competitive position for 
the future. In contrast to a closed- 
architecture machine such as the 
Atari ST, the 2000 can be not only 
reconfigured, but easily upgraded. 
The Amiga's multitasking operat- 
ing system already makes it unique 
in the 16-bit arena. By allowing a 
plug-in upgrade to a processor like 
the 68020, Commodore has enabled 
the Amiga to survive through the 
next, even more powerful generation 
of 32-bit computers as well. @ 



GET mo 200 FUN-HLLED 



PROGRAMS EACH YEAR- 

when you subsaibe now to COMPUTE! 




.Hi J ■: f -1 



(wkrvkn-hriSi 

*■» fl 7 (. i 1 3 -.! il J 4 ^ 6 V a •>' 



Hriitnu g nithitw iinsua^o pco^rdH. ' 
worhs on *ivr ditrpreni CDnfuters >' 
£ffjll task, Th*- first hurdle i,^ imi 
J 5Jf* pl-ltH lo put Ihf cod*. Thougi 
tii9 £J5*ttD bgffer is an ohviaui 
ChDlCif. 1^ S LQiC4TCd in dirflffnT 

L thvr* irettfs prob]en( for tlpr 



..t (or 
KPMory, thr iToofrtJdfrr ch*Cki ■ 
which cqi.pui(r youVe ujmg. fh»n it 
stnrfs thfl HL it the bottOM o* BftSlC 

ihp tonpu^jr's sTjn-oi-tllhSlC pointtr 
to d ^pot 255 bvtp- h>gfq*r in puHsry. 
One* thit's iQnt, th* froo(re8d*r 
AcTiV4^«s thp HL routin* ^ind tnstf 
iise-lf witt> 1EU> Hotr ihai b«c«usi- tt-f 
ECePlrt'jdsr owsrwritu its nnt fri* 
BrtSl£ |iii*s, It';; crinc^l noj to 
dvle>iv jnythina rroh ift* firjt partion 



Subscribe to COMPUTE! today through this 
special introductory money-saving offer, and 
you'll be getting a lot more than just another 
computer magazine. That's because each issue 
of COMPUTE! comes complete with up to 20 
all-new, action-packed programs. 

Subscribe now and you can depend on a 
steady supply of high quality, fun-filled 
programs like Hickory Dickory Dock, 
Switchbox, TurboDisk, Home Financial 
Calculator, Turbo Tape, SpeedScript, 
SpeedCalc, and hundreds of other educational, 
home finance, and game programs the entire 
family can use all year long, 

The superb programs you'll find in each 
issue are worth much, much more than the 
low subscription price. 

And there's more to COMPUTE! than just 
exciting new programs. Month after month, 
COMPUTEI's superb articles deliver the latest 
inside word on everything from languages to 
interfaces... from programming to disk drives. 

Whether you're a novice or an experi- 
enced user, COMPUTE! is the magazine for 
you. So subscribe today. Return the enclosed 
card or call 1-800-247-5470 (in Iowa, 
1-800-532-1272). 

Do it now. 




ACT NOW 
ANPS^fE 



App** H"-*** lJ*OpH*t* ' 






—y-P'^ 



n 



COMPUTE! Publications, Inc. ® 

One of the ABC Pubfishing Companies ^B^ 

If attached order card is missing, write: COMPUTE! RO. Box 10955, Des Moines, lA 50950 



^ 

?^^^. 




le 



c^f^' 



personal 
computer system 
is only as strong as the 
peripherals that surround it — the 
monitors^ disk drives, printers, modems, 
and other pieces of hardware that let you use 
your computer to its maximum potential. 
Over the past few years, 
more advanced computers such as the Apple Mac- 
intosh, the Atari ST, and the Commodore Amiga 
have brought new levels of power and flexibility 
to personal computing. At the same time, there 
have been major advances among the peripherals 
that support these computers, the IBM PC and 
compatibles family, and the earlier eight-bit ma- 
chines like the Commodore 64, Apple II family, 
and Atari 400/800/XL/XE computers. 
On the following pages 
you'll find overviews of three of the most impor- 
tant developments occurring in computer periph- 
eral technology today and during the next several 
years. New capabilities for dot-matrix printers, 
lower-priced hard disk drives, and computer 
screens with far greater resolutions will be affect- 
ing how we print, store, and look at computer 
information. And the changes will likely be occur- 
ring at a faster rate than many of us realize. 



18 COMPUni March 1 987 



An Introduction To 
Hard Disk Drives 



Philip I. Nelson, Assistant Editor 



More and more personal computer 
owners are bringing home hard disk 
drives — those mysterious "black box- 
es" that can hold vast quantities of 
information and transfer data at 
amazing speed. In this article, we'll 
look at ivhat's inside a typical hard 
drive and what makes this device so 
attractive to home users as well as to 
businesses and software developers. 



Hard disk drives have long been 
popular with computer profession- 
als. But until recently, they vi'ere 
simply too expensive to tempt most 
home users. That picture has 
changed dramatically within the last 
year. Comparatively inexpensive 
units are now available for the Atari 
ST, Amiga, and Macintosh, as well 
as for the increasingly important 
IBM PC workalike market. And you 
can even buy hard disk drives for 
eight-bit machines such as the Com- 
modore 64 and eight-bit Ataris, 

The Proverbial Black Box 

Hard drives are deceptively simple 
in appearance. The typical unit is a 
rectangular box adorned with noth- 
ing but a power switch, a cable to 
the computer, and a light that indi- 
cates when the drive is busy. A few 
are even functionally invisible: The 
latest development in the IBM PC 
market is the hard card — a complete 
hard disk drive mounted on a card 
that plugs into the computer's inter- 
nal expansion box. 

Hard disk drives go by various 
names; hard disk, rigid disk, fixed 
disk, or even Winchester disk, a 
holdover from early days when the 



market was dominated by a manu- 
facturer of that name. The first two 
names refer to the fact that the disk 
platter is made of hard, rigid materi- 
al (often aluminum) rather than the 
flexible plastic used for floppy disks 
or tapes. The term fixed disk refers 
to the fact that the platter is perma- 
nently installed, unlike a removable 
medium such as a floppy disk. 

Bigger And Faster 

The basic function of any mass stor- 
age device — a tape drive, disk drive, 
bubble memory, or whatever — is to 
let you move information from the 
computer's memory into permanent 
storage, and vice versa. The advan- 
tage of a hard drive can be summed 
up in two words: capacity and 
speed. Let's look at capacity first. 

An IBM PC floppy d'isk has 
362,496 bytes (354K) of total space. 
By comparison, the smallest avail- 
able hard drive stores 10 megabytes 
of information — the equivalent of 
10 million characters of text. Larger 
hard drives store 20, 40, 60, even as 
much as 140 megabytes of data. 
Thus, a lO-megabyte hard drive 
holds roughly the same amount of 
data as 27 IBM PC floppies, and it 
takes something like 386 PC floppy 
disks to hold as much information 
as a single 140-megabyte hard 
drive. Currently, the most popular 
units for personal use are 10-mega- 
byte and 20-megabyte hard drives. 

Hard drives are a great deal 
faster than floppy drives. To demon- 
strate the speed difference, I wrote a 
simple program in C for the Atari 
ST. The test program writes ten 
10,000-byte fUes and one 200,000- 
byte file to disk (a total of 300,000 



bytes), and then reads the same flies 
back. All in all, the system has to 
move 600,000 bytes in the course of 
a program run. The elapsed time 
was calculated using the ST's inter- 
nal timer, which counts time in two- 
second increments. Here are the 
results from running the program 
with a single-sided floppy Atari 
drive, a 20-megabyte Atari hard 
drive, and a commercial RAMdisk 
utility which emulates a disk drive 
entirely in RAM; 

Floppy Hard Disk RAMdisk 
16:24 9:46 8:24 

The outcome of the race is a 
foregone conclusion; We expect the 
RAMdisk to win because it doesn't 
have to perform any mechanical 
operations at all. The hard drive, 
however, compares very favorably 
to the RAMdisk, performing the 
test several minutes faster than the 
floppy drive. (Please keep in mind 
that these results are provided only 
as a rough-and-ready demonstra- 
tion, not as a scientific benchmark 
of any sort. Different computer sys- 
tems, using a different microproces- 
sor and DOS, or disk operating 
system, would produce quite differ- 
ent results. However, it's safe to say 
that a hard drive usually operates 
considerably faster than a floppy 
disk on the same system.) 

There are several reasons why 
hard drives move data so much 
faster than floppy drives. The first 
has to do with rotation speed. Hard 
disks spin up to 3600 revolutions 
per minute (rpm), about 12 times as 
fast as floppies, which usually spin 
at about 300 rpm. 

Hard disk sectors are also 

Mofch 1987 COMPUni 19 



Call (800) 621 SAVE IsV.Sooo. 
for THE highest quality and best 
value in computer products 
anywhere. 



THE 



TM 



Thompson, Harriman and Edwards Compttter Products Company, Ltd. 



COMMUNICATION 

AJl THE u" Modems are Hayes Compatible 

,»., THE .. Internal 

Modems 

For IBM TK- XT/AT and 

eompatibies, feature aulo 

answer, dial and re-dial 

w/built-in speaker. RS232-C 

serial port and FREE 

communicalion software. 

$109.00* 

Keiail Ptice 5148.75 

$197.00* 




1200 BAUD 
INTERNAL 



2400 BAUD 
INTERNAL 

Retail Pries 5332.00 

THE External Modems 

For IBM"/. Apple™ and other computei 
systems. These seir-testing 1 200 and 2400 Baud 
modems come with auto answer, auto dial, 
re-dial, and built-in speaker with volume control. 



1200 BAUD 



2400 BAUD 



$119.00* $259.00* 



Rsiail Price S 16 1 25 



Pciail Price 5346 75 




RAM MEMORY 



GUARANTEED 
FOR LIFEt 



64K Upgrades for 
IBM.MPCorXT 
256K Upgrades foj 
lBMt,.PC/XT.'AT 



$7.75* 
"^6.10* 



VIDEO CARDS 



s \y 



For ihe IBM tvXT/AT and Compatibles 
THE ■ H720 MONOGRAPHICS 

This short slot graphics card w/ 1 32COL capability and 
Printer Port is 100% IBMiMand HerculeSTt/compatible. 
Retail Pn« $91,25 ^6700* 

THr:iM EGA PLUS 

100% IBM TuECA/Hsrcules Graphics/CGA/MDA 
compatible, W/Prinler Port, EGA Plus is perfect for 
high resolution graphics, W/2S6K i^fyryn /\/\* 
slandard. Retail Price 5300-64 ^££\J. t/V 

THE T... COLOR CARD 

Features 32Ox2OO,'S'50x200 graphics and 80x25 
alphanumeric with 100% IBM™ color card 
compatibilily. with Primer Port- A^*/* A.f\-i' 

Remil Price 57500 $60. 00 



MULTIFUNCTION^ 



For IBM Tw XT/AT and Compatibles 
THE .-.. NIUtTI I/O 

100% ASTr'/ 110+ compatible w/serial. parallel an^ 
game ports standard, ciock/calendar, fiAMdisk and 
Print Spooler, Second Serial Port c£/l /l/lf 
optional. Relail Piicc S75 00 pOU.UU 

THE .-.■ 2MB EMS RAM CARD 

Meets Lotus Tu lintel iw specs, compatible with 
Microsoft rw Windows. Lotus. Framework and more. 
RAMdisk/Print Spooler, software ^QQ A/1* 
included. w/OK. Rsiail Piice 5172.00 ^yif.UU 

THEi. MULTI 384 

100% AST™Si)(Pack compatible. Features O-aS^K 
additional memory, serial and parallel ports. clocW 
calendar w/baitery backup. RAMdisk 
and Print Spooler, w/OK. C/J7 Ht)* 

Pelail Price 590.00 <^V / ,VVf 




STORAGE DEVICES 

For the IBM tu XT/AT and Compatibles 

THE 20MB 
HASD DISK 
SUBSYSTEM 

This half heighl mtcrnal ZOIVIB 

disk drive comes wilh a short 

slot conlrolle r card . connecting 

cables and manual. 



Retail 
Piicc 




Retail 
Price 
S500.00 



$347.00* 

THE 20 + 20 
SXJBSYSTEM 



The 20MB streaming lape 

drive packaged together with 

our 20MB Hard Disk allows 

you to backup Ihe entire 

contents of your 20MB hard 

disk in minutes. 



$695.00* 



20MB HARD DISK 
ONACflRD 

This 3.5 ■ 2QMB hard disk and 

controller on a single card 

features simple plug-in and go 

installation and disk slot 

saving efnciency. 



$375.00 



*PC NETWORK MEMBERS BUY HARDWARE AND SOFTWARE AT 
WHOLESALE +8% AND GET 14-30 DAY SOFTWARE RENTALf 



Please (J^) all boxes that apply: 

•Basic Membership 
Wilh 14 Days Rental 
Business Software Rental Library 
Games Software Rental Library 

•SpecialV.I.P. Mcmbcrihip 
With 30 Days Rental 
BOTH Business and Game 
Software Rentat Libraries 



I Year 
$8 D 



2 Year 

SIS : 



S25 _! add! per year 
$10 ._ add! per year 

I \fear 2 Year 
SIS r $25 ~ 



$30 LJ add! per year 



Validation 
Number 

JN3 



L Bill My Credit Card VISA MasterCard L.American Express 

NuTe'r nnnnnnnnnanDDnnn 

Exp Date 

mon. yr 

GCheck or Money Order Enclosed for S 

Name .^ 

Address ^ 

City - State 

Telephone: ( ) 

My Computer(s) is 



Apt- No 
.Zip 



IBM 
!,App!e 11 



IBM XT IBM AT 
Macintosh Other 



Signature 



MEMBEBS GET.. 

500 PAGE WHOLESALE OUALOG 

30.000 Listed Items and 
Their Wholesale Prices 

PERIODIC NEWSLETTERS 

With Catalog Updates and Reviev/s 

10 DAY RETURNS 

On Hardware — irVou Don't Like It, Return 
it. No Questions Asked 

24 HOUR BULLETIN BOARD 

10.000 Free Software 
Programs to Download 

CUSTOMER SERVICE + 
TECHNICAL SUPPORT 

Help lo Gel the Best Products for Your 
Needs, and Solve Any Hardware or 
Software Problem 

Mon 



est 



(Signature requiicd lo validsse membership) 
Copyrigm 1966. PC NERVDRK. INC 



-Frj. 8am - 7pin 

Saturday Sam - 5pm 

Cufiomfr Service ^nd Order Slaiaai 
(2121 280-t5fi7 Mon.-Fri. B:aOaR!i'4r30pRi 

PC NETWORK 

320 West Ohio Street Ji^; 

Chicago, lUinois 60610 



rw-t-fj-f-i BACKED BY A 5-95 MILLION 

1 OXLtv COMPUTER PKOLIUCTS COMPANY 

CARE PACKAGE 



THE .commitment lo oar 

customers is compatibilitY, 

quality, vdue, 

service and support 

THE "backs everv product with a 

45 DAY MONEY BACK 
GUARANTEE 

and a 

1 YEAR WARRANTY 
ON PARTS AND LABOR 



-All Prices Lilted in this Ail ttt Whetiszle 
Oaly PC ^ttwarll Members Pay Wholcsilt Plus 8% 
Prices Subject To Change Wilhoul Notice 
Producls Subject To AvailabllilY 



PCW#RLD 

"THE's bottom lim-:' The PC+ is 
a highly cmnpulihie done 
northy of considiTnliiin. . ." 



Y -^ "THE .PC + is will huitt 

^ W support behind it to make it 
' ■ ' I a very attractive aiternalive 
to higher priced 
competition." 




m 



CiMnputer Dealer 

". . . the unit became the preferred 

computer in our ofTice, which has 

several name brandx as possible 

alternatives. . ." 



THE-PC+ COMPUTER is compatible 
with all business, professional and 
personal software written for the IBM .« PC. 
It will also enhance your prDductivity with 
its abilitY to switch to an 8 megahertz clock 
rate, enabling you to run your software 
twice as fast as the IBM -^^ PC. TH E ,« PC + 
also comes standard with an AT' style 
keyboard, correcting the inefftciencies 
found by IBM ^M on their regular PC 
keyboard. 256K standard (640K optional) 
on the mother board will allow you to run 
memory intensive programs such as Lotus 
1-2-3. DBase III and Framework without 
adding extra memory cards. Plenty of 
power, with a 150 Watt source and lots of 
room for expansion with 8 card slots, is 
also standard. Base unit includes: 
256K RAM, 
Computer with One 
360K 5'A" Floppy 
Drive. Dual Turbo 
Clock Speed, 8 
Expansion Slots. 
150 Watt Power 
Supply. AT' Style 
Keyboard. 

Retail Price SS86-25 

Special 

Wholesale 

Price 

$444.00*' 

THEth12" 
Duai Frcquencv 
Mono Monitor. 
Amber TTL 
As Shown 

$80.00* 






THE MOST INCREDIBLE 
LIMITED TIME OFFER IN 
COMPUTER mSTORYFROM 
THE .and PC NETWORK 

THE PC 

100% IBM„PC/XT 

compatible 

256KRAM 
360K 5.25" 
Disk Drive, 
Tfirbo Speed, 
"AT' Sl0e 

% Keyboard 






ALL THE .PRODUCTS in this 
special SALE are offered thru 

PC NETWORK 

CALL TOLL FREE JJN3 

(800) 621-SAVE 

In Illinois CaU (312) 280-0002 



^JK ^ 



Retail Price $586.25 






1^ 



$469.00* for 640K System 

Dealer Inquiries Welcome, CaU THE:, at (312) 642-9626 



located closer together than floppy 
disk sectors, and the data on each 
sector is packed more densely. Lo- 
eating sectors close together re- 
duces access time, the average 
amount of time it takes the read/ 
write head to find a sector. This 
factor, together with the dense data 
format and fast rotation speed, al- 
lows the hard drive to access much 
more data than a floppy for a given 
amount of time. 

Performance of this type re- 
quires advanced technology. To 
eliminate friction, the drive's 
read/write head actually flies above 
the surface of the disk, supported by 
a microscopic (about .00015-inch) 
layer of trapped gas. The gap be- 
tween the read/write head and the 
disk is so small that a tiny speck of 
airborne dirt — or even a particle of 
tobacco smoke — can scratch the del- 
icate disk surface. To prevent con- 
tamination accidents, the disk and 
read/write machinery are sealed in 
a housing filled with clean, inert gas 
or carefully filtered air. 

Another key factor in hard 
drive technology is the interface be- 
tween the drive and the computer. 
It doesn't matter how fast a drive 
can read or write if it can't move 
data to the computer with commen- 
surate speed. Most floppy drives 
use a comparatively slow serial in- 
terface which transmits one bit (bi- 
nary digit, a one or zero value) of 
data at a time. Hard drives typically 
use a variation of SCSI (Small Com- 
puter Systems Interface, pro- 
nounced scuzzy), an interface that 
supports much faster transfers. 

Subdirectories And 
Partitions 

Hard drives can store hundreds, 
even thousands of files. If you think 
it's difficult to find a file on a floppy 
disk that has dozens of files, imag- 
ine searching through a disk direc- 
tory that contains thousands of 
filenames. Without some way to 
organize the drive's contents, sim- 
ply finding a file could be a night- 
mare. Hard drives can be organized 
in two fundamental ways; with par- 
titions and with subdirectories. 

Like floppy disks, hard disks 
need to be formatted before you use 
them for the first time. After for- 
matting, most hard disks are then 
compartmentalized into two or 
more separate partitions. If you vi- 

22 COMPUTEI Morch 1 987 



sualize the entire hard drive as a 
conventional filing cabinet, then a 
partition is the equivalent of a 
drawer. Each partition is logically 
distinct and can be used, for practi- 
cal purposes, as if it were a physi- 
cally separate drive. Figure 1 
illustrates the partitioning of a 20- 
megabyte drive for the Atari ST. 
Drives A: and B: always refer to 
floppy drives. In this case, drives 
C:, D:, and E: are all partifions, or 
logical drives, contained in a single 
hard drive unit. 

If a partition is equivalent to a 
file drawer, then a subdirectory is 
equivalent to a folder within the 
drawer. Related files are usually 
grouped together in the same sub- 
directory: You might store word 
processing files in one subdirectory, 
database files in another, and so 
forth. Figure 2 shows the directories 



for drives C:, D:, and E: (on the ST's 
desktop, subdirectory entries are 
marked with a graphics symbol and 
appear at the top of the main 
directory). 

In addifion to files, a subdirec- 
tory can contain other subdirec- 
tories. Figure 3 shows the partial 
contents of the DEGAS sul^direc- 
tory on drive C: of this particular 
system. Notice that this subdirec- 
tory contains several subdirec- 
tories. A well-organized hard drive 
may contain subdirectories nested 
several levels deep. 

Using A Hard Drive 

Hard drives are reliable, but they're 
still susceptible to misuse and acci- 
dents of nature. In the worst case — 
for instance, if you suffer a power 
failure in the midst of a massive file 
update — an accident can garble the 



Figure 1 : Hard Drive Partitions 

Desk File View Dotions 



^riy. 



/lO. 




r€y. 



Figure 2: Partition Directories 

Desk File Uifw Options 






"m 



i^/: 



TT 



9U92 bytes used in 



K ISLNORD 
:•: ARCHIUE 






r€y. 






t:.=;j 







Mom 



LISTER 

disc 
nmim out 

HEO 

SKVFGHTR 

SPKTOHE 

STflPP 

TERMIML 

CLK flCC 



m 



JjTTj^ 



\>:\ 



Will bytfs used i 



S CFILES 
;•! CPM 

:•: mmiz 
'A mmn 

'A NEHHflX 
K PPftSCftL 

K nmc 

CONDEX 

DRIUE 

DRIUE 

DRIUE 

EDITOR 

HHCC 

HKDIS 

KHIHP 



PRG 
PRG 
TIP 

TIP 
TIP 



mmmmmmmm 



E:\ 



6 butes used in 



•A(f 



COHPILER 
EMflCS 
LftTTICE 
LIMKER 



;•: Hcu 



NEUC 
NOTEPfiD 
RCS 
UTILITV 



Figure 3: Subdirectories 

Desk File Uiew Options 







-m 
w 


■ 1 ^ : : 


C:\D£GflS\ ?--■:==== 




T 


E;\ 




: 512851 bytes used 


in 64 itens, 






ustd in 


; K fltJIO 




18-29-66 


09:26 an 


i 




I ■ .; 


-■■•"■"-. 


\ K BLOCKS 




10-29-eG 


09! 26 an 




FILER 


/< 


/lO, 


\ K BRUSHES 




10-29-86 


89127 an 




CS 


r* 


=^y. 


: j; FILLS 




10-29-86 


09:2? an 




TICE 


zj: 


■W 


\ K FONTS 


\ 


lfl-29-86 


09:27 an 




KER 


i K PRINTERS 


18-2?-8B 


09:28 an 




H2 


'* 


" "'" * 


flSSICN SVS 


510 


18-29-86 


09:38 an 






^ 




BOXES FIL 


B4 


11-20-85 


12:17 an 




DLA 


* ' 




BRUSHl BRU 


84 


li-20-85 


12:17 att 




C 


^ r' 




MSCME FIL 


M 


11-20-85 


12:17 an 




EPIlft 


[. . ..- 




CHECKER FIL 


G4 


11-20-85 


12:17 an 










CIRCLE BRU 


64 


11-23-85 


12:18 an 




LITV 




-,->^ 




CLUB FIL 


64 


11-20-85 


12:13 an 








r 




! COMPUTER FKT 


2050 


11-20-85 


12:18 an 






J 


EMJH \ 




; CRdP FNT 


2050 

£7000 


11-20-85 


87:33 an 


f 




ss^ 


1:;:"- 








i* 


I 


_p__ 



entire contents of the drive. Because 
the read/write head floats so close 
to the rapidly spinning disk, hard 
drives are especially sensitive to be- 
ing bumped or jostled during oper- 
ation. If you need to move the 
drive, you must run a special pro- 
gram to "park" the read/vi^rite head 
in a safe landing zone on the disk 
surface. 

The enormous capacity of a 
hard drive makes regular backups 
an absolute necessity. The more 
data you put on a drive, the more 
vulnerable it becomes to a single 
accident. Many hard drive owners 
copy critical data onto floppy disks; 
there are a number of utility pro- 
grams to make this process relative- 
ly painless. You can also buy high- 
speed tape drives for the same 
purpose, although these units 
sometimes cost more than the unit 
they're designed to serve. 

Hard drives have also added a 
new vmnkle to the copy-protection 
controversy. Some hard disk ovmers 
have become foes of copy- 
protection — not because they con- 
done piracy, but because a copy- 
protection scheme that prevents a 
program from running on a hard 
drive defeats the purpose of buying 
a hard drive in the first place. Any 
copy-protection that keeps you from 
making illegal copies on a floppy 
will probably prevent you from stor- 
ing the program on a hard drive, as 
well. If you're forced to load the 
program from a copy-protected 
floppy disk, you lose the time sav- 
ings of loading it from the much 
faster hard drive. In the worst case, 
the software nught take control of 



the system when it boots and pre- 
vent you from storing data files on 
the hard drive, making its large stor- 
age capacity useless. 

Partly in response to such con- 
cerns, some software companies are 
removing copy-protection com- 
pletely. A compromise solution is to 
allow the software to run on a hard 
drive, but only if you plug in a 
dongle or boot up with a key disk in 
the floppy drive. Once the program 
has determined that you are using a 
legal copy, it can allow you to store 
and retrieve data files from the hard 
drive. 

The Sludge Factor 

New hard disk owners are often 
tempted to put their entire software 
libraries on the hard drive, but 
that's usually not a good idea. Clog- 
ging the drive with a multitude of 
files and subdirectories makes the 
disk's organization more complex. 
In such an environment, files tend 
to become fragmented — located in 
scattered, noncontiguous disk sec- 
tors. The more fragmented the file 
structure, the longer it takes the 
drive to access the file. 

There's no question that a 
heavily loaded drive runs slower 
than one that's comparatively emp- 
ty. At the time this article was being 
written, we happened to receive a 
new 20-meg hard drive for evalua- 
tion. To confirm that the "sludge 
factor" is real, I ran the test program 
just after formatting the new drive, 
when it was still completely empty. 
The time was a sparkling 8:58, sig- 
nificantly faster than the result 
from our other hard drive, which 



had only 380,000 bytes free on the 
partition where I ran the test. Then I 
loaded the new drive with files un- 
til the current partition had only 
380,000 bytes free, and I ran the 
test again. The result was a time of 
10:56, a full minute and a half slow- 
er than when the drive was empty. 
Not surprisingly, the increased 
use of hard disk drives has led to a 
whole new category of software. 
Two of the rpost popular hard drive 
utilities are catalog programs, 
which print a comprehensive cata- 
log of everything on a drive, and 
file finders, which sift through ev- 
ery subdirectory on the drive and 
tell you exactly where a designated 
file resides. 

Who Needs One? 

Should you buy a hard disk drive? 
If your major use of a computer is to 
play "Laser Blasters" two or three 
times a week, the answer is proba- 
bly no. Entertainment programs 
often use copy-protection schemes 
that take over the system complete- 
ly and run only from a floppy disk. 
Many games don't access the disk 
while running, anyway, so you 
have little to gain by shaving, say, 
ten seconds off the hme it takes to 
load the game. 

On the other hand, a hard disk 
drive may be a necessity for a busi- 
ness or a software developer. De- 
velopers use them to speed the 
process of compiling new programs, 
and businesses are always looking 
for ways to enhance productivity. A 
hard drive is also a boon to anyone 
who operates a computer bulletin 
board: A large-capacity hard drive 
can provide fast, ready access to 
thousands of archive files. If you're a 
heavy user of bulletin boards or 
commercial information services, a 
hard drive can make life easier, too: 
Disk-related delays become a thing 
of the past, and you can capture 
enormous files without any fear of 
running out of disk space. 

What these groups have in 
common is that they tend to use 
software that's highly disk-depen- 
dent. If you regularly deal with 
large quantities of data or a great 
number of disk files, a hard drive 
might be a useful acquisition. The 
more disk-intensive the activity, 
the more you stand to benefit from 
the large capacity and fast access 
time of this device. @ 



March 1987 COMPUTEI 23 



The New, 

High-Quality 

Dot-Matrix 

Printers 



Kothy Yakal, Assistant Features Editor 

New laser printers may be getting most of the 
high-technology headlines these days, but the 
marked improvement in dot-matrix printer ca- 
pabilities is the most important news for many 
computer users. The emergence of near-letter- 
quality (NLQ) and even letter-quality (LQ) 
dot-matrix printers at reasonable prices is a 
trend that's offering computer users better 
printing at lower costs than ever before. 



In the early days of personal computing, choices were 
limited when it came to picking a printer. Even dot- 
matrix printers with relatively few features and rough 
printing capabilities could be expensive and unwieldy. 
Of course, personal computers were also significantly 
more expensive then, so it didn't seem unreasonable 
that peripherals would also be a major expense. 

When the home computer market exploded in the 
early 1980s, manufacturing costs for both computers 
and peripherals started to decrease. Numerous small 
companies began to manufacture printers for 
personal computers, and many existing 
consumer electronics companies added printers 

to their product lines. 
Dot-matrix and thermal printers 
have been the most popular among 
personal computer owners, 
chiefly because their prices 
have been within the budget 
of many consumers. The first 
dot-matrix printers used a print- 
head consisting of a vertical row 
of stacked wires, usually in a 5 X 7 
or 8 X 8 matrix pattern. These wires are 
hammered into an inked ribbon which then 
strikes the paper in various patterns to 
form different characters. 
Thermal printers, which use heated 
wires to burn off a coating on special thermal 
paper, have also been relatively inexpensive, but 
require special paper that is flimsy and smears easily. 
For many computer users, daisywheel printers 
have traditionally been too expensive, and their inabil- 
ity to print graphics characters has further limited their 
popularity in the home and educational markets. A 
daisywheel printer has a printhead composed of 
formed characters located on the ends of spokes — or 
petals — that emanate from a central, spinnabla hub. 
Shaped much like a daisy, these printers give the most 
professional look to alphanumeric characters and have 
been popular — and affordable — in business. 

Over the last couple of years, however, printing 
capabilities for personal computer owners have contin- 
ued to improve. Dot-matrix printers today, even the 
least expensive, generally offer more features, faster 
speeds, and better quality. At the same time, dot- 
matrix printers using 24-pin printheads, previously 
considered a tool for business applications, have start- 
ed to move downward in price and are now almost 
within the financial reach of home computer owners. 
Offering more features and flexibility, these high- 
quality dot-matrix printers are starting to compete for 
the consumer's attention. And they even threaten to 
make daisywheel printers obsolete for business pur- 
poses in the future. 

A Good Business Tool 

For now, however, the newest high-end dot-matrix 
printers have yet to become household items.' "Twenty- 
four-pin printers at this time are going into the busi- 



24 COMPUTEI March 1987 



3^oft-0 « ^ 




ASC II Express 


132.95 


Balance dI Power 


34.95 


Ballyhcc 


27.95 


Bank Stree! Wrilcr 


46.50 


Breakers 


30.95 


Ccrtificjie Mjker 


11,95 


Crossstalk 


54.95 


dBase III- 


■119,95 


Dollars i Sense 


104.95 


Easy 


W.50 


linslein Wfilef 


69,95 


Elecinc Disk 


199.95 


Flight Sim 


!e.« 


Fomri< 2.5 


83.00 


Fnlpks 1 thru 13 ea. 13.00 


framework IJ 


41S.95 


Fully Powersil PC 


24.95 


Gamecard H\ 


39.95 


Galo 


20,95 


Graphics Eipander 


27.95 


Hacker 


31,95 


Hacker II 


26.95 


Jel 


3t.« 


King's Quesi 1 or II 


CALL 


Knowledgeman 2.0 


319.95 


Lotus 


319.95 


MngngYt Money 


114.95 


Micro Cookbook 


2G.9S 


Microsoll Word 


2S9.95 


Multiplan 


110.95 


Norton Ulllilies 


SS.95 


Option Board 


73.00 


PFS: Access 


59.95 


PFS: Files 


75.55 


PFS: First Choice 


104.95 


PFS: Graph 


75.95 


PFS: Plan 


75.95 


PFS: Write 


75.9S 


Print Shop 


34.95 


Print Shop Companio 


3!,95 


Print Shop Gr. -1 


19.55 


R:Base SOOO 


339,95 


Reliek 


69,95 


Report Card 


32,95 


Sidekick protected 


29.00 


Sidekick not protecte 


44,00 


Sideways Ver. --3 


39,95 


Speedkey 


104,95 


SuperCalc 3 


239,95 


Superkey 


35.S0 


Swill Date 


97.95 


Symphony 


CALL 


Thrnk Tank 


99,95 


Time Is Money 


71.95 


Traveling Sidekick 


36.95 


Turbo Database TItix 


39.95 


Turbo Ligr^trng 


56.95 


Turbo Pascal 3.0 


59.95 


Turbo Prolog 


69,95 


Turoo Tutor 


23.95 


Ultima III 


35.45 


Visabie GD36 


33.95 


VolksAnter DIx -3 


HI.OC 


Web, Spell Checker 


41.95 


WiiSrdiy 


36.95 


Word Perfect 


299.95 


Worostaf 


214.95 


Wordstar 2OO0 ■ 


359.95 



APPLE SOFTWARE 

Adv. Construction 30.50 

Airheart 22.95 

AlgeblaslEr 25.95 

Alpha Plot 24.39 

ASC II Enpresa 73.95 

Auto Works 27.95 

Bag ol Tricks 2 29.95 

Baok Street Filer 39.95 

Bank Street Mailer 39.95 

Bank Street Writer 39.95 

Bank Street Spellei 39.95 

Bard's Tale 27.50 

Beagle Bag 14.95 

Beagle Basic 17.69 

Beagle Compiler 49.95 

Beagle Graphics 29.95 

Beneath Apple DOS 13.95 

Big U 17.69 

Booktnds 64.95 

Bop I Wrestle 20.95 

Breakers 30.95 

Captain Goodnight 19.95 

Carmen Ssndiego 22,95 

Ceriilicaie Maker 32.95 

Chart'n Graph TIbx 23.95 

CIssBtnales 34.95 

Crypt ol Medea 2t.95 

Database Toolboi 23,95 

Da22le Draw 34.95 

D'Code 20.49 

DiskQuick 15.49 

Dollars S Sense 67.95 

DOS Boss 12,69 

Double-Take 17.69 

Eidolon 22.95 

Essential Data Oup 28,9S 

Etira K 20.49 

Fantavislon 23.49 

Fat Cat 17,66 

Flei Type 14.95 

FonlridS 53,25 
Fntpks 1 thru 15 ea. 13.00 

Font Works 34.95 

Forecast 34.00 

Frame-Up 14,95 

Galo 20.45 

G I Joe 19.95 

Graphics Department 54.95 

Graphic Magician 26.95 

Graphworks 56.95 

GPLE 25.95 

HancAer Package 64.95 

Impossible Mission 23,50 

1.0. Silver 15.69 

Jeeves 34,95 

Karateka 19.45 

Knight of Diamonds 19.95 

Kids on Keys 17.95 

Kid Writer 26.95 

King's i^uesl I or It ze.OO 

Koronis Rift 23.49 

Legacy of Llylgamyn 22.95 

List Handler 36.95 

Locksmith 56.95 

Macronorks 19.95 
Mngng Yr Money 114,95 

Megaworks 68.95 

Merlin 37.95 

Merlin Pro 55.95 

Merlin Combo 63.95 

Micro Cookbook 26.95 

MilFionaire 31.95 



APPLE SOFTWARE 

Minipin t,2or3 16.95 

Moeblus 35.95 

MouseWrite 94,95 

Monch-A-Bug 23.95 

NATO Commander 19.4S 

PFS: Plan 69.95 

PFS; Wnle 69.95 

PFS: File 69.95 

Piece of Cake Math 19.95 

Pinpoint 44.95 

Prince 4). 95 

Printographer 23.95 

Printmaster 27.95 

Prt. Sh. 23,49 
Prt Shp Gr. 1,2.3 or 4 14.95 
Print Shop Companion 23.49 

ProPyler 17,69 

Pronto DOS 14,69 

Prof, tour golf 25,89 

Power Print 24.95 

Quicken 34.95 

Report Card 31,95 
Rescue on Fractatus 23.50 

Reportworks 56.95 

Rescue Raiders 24.95 

Science loot kit 39.95 

Sensible Grammar 52.95 

Sensibfe Speller 54.95 

Shape Mechanic 20.00 

Sideways 41.95 

Silicon Salad 12.69 

Skylon 24.25 

Spellworks 27.95 

Spltlire Simulator 24,75 

Slloky Sear ABC 23.95 

Cii Builder 23.95 

Malh 23.95 

Math Word Proli. 23,95 

Music 23.95 

Numbers 23.95 

Reading 23.95 
fid. Comprehension 23.96 

Spellgrabber 23.95 

Townbuilder 23.95 

Typing 23,95 
Summer Games I or li 22.45 

SuperCaic3A 109.95 

Super Macroworks 32.95 

Terrapin Logo 54.50 

Think Tank 69.89 

Thinkworks 69.95 

Tip Disk -1 12.00 

Toy Shop 39.95 

Transylvania 11.95 

Ttlnily 22.49 

Trlple>Dump 20.49 
Turbo Database TIbt 39.95 

Turbo Pascal 3.0 44.95 

Turbo Tutor 23,95 

Type I 29.95 

Ultina III 33.25 

Ullina IV 33.25 

Understanding HE 17.95 

Universal file conv 24.95 

Utiiity City 14.69 

Video ToolbOii 23.95 

VIsable 6502 31.75 

Wilderness 34.95 

Wizidry 27.95 

Wiiard'sToolbOk 23,95 

Wi2ptint 14.49 

Word Handler 36.95 

WordPerlecl 125.95 

WoHd's tSrISI FIball 22.95 

Write Choice 41,95 



■ SILICON EXPRESS 

^^= 5955 E. Main St. Columbus, Ohio 43213 
^^ 1-614-868-6868 



Aerojet 


24,95 


Air Rescue 1 


24.95 


Bards Tale 


27.50 


Bailblazer 


22,95 


Back to Basics 


134.95 


Bank Streel Storybook 


27.95 


Bank Street Speller 


34.95 


Bank Street Wriler 


34,95 


Basic Toolkil 


2S.95 


Blazing Paddles 


24.95 


Brnved Time 64/128 


20,95 


Carmen Sandiego 


22.95 


Color Me 


20.95 


Cntdwn 10 Shtdtm 


20,95 


Fasi Tracks 


20.95 


Gertrude's Secrets 


20,95 


GlJoe 


19.95 


Graphics Magician 


27.95 


Grappler CD 


79.95 


Grt Amer Road Race 


20.95 


Hacker 


20,95 


Jet 64/128 


27,95 


Jel Combai Simulator 


20,95 


Karateka 


19.45 


Kennedy Approach 


24.95 


Kola Pad 


54.95 


Kung Fu 


20.95 


Litlte Comp. People 


24.95 


Mail Order Monsters 


24.95 


Merlin 


34.95 


Mig Al,ey Ace 


24.95 


Multiptan S4f126 


43.95 


Music Shop 


31.9S 


Nalo Commander 


19.95 


Paper Clip 


41.95 


PFS: File 


34,95 


Print Shop 


29,95 


Print Shop Comp, 


21,95 


Pi, ShopOr. 1.2,or3 


13,95 


Rescue on Fractaius 


22.95 


Scrabble 64fl28 


27,95 


Sideways 


20.35 


Silent Service 


19,95 


Spitfire Ace 


20,95 


Spreadsheet 


34.95 


Spy vs. Spy 


20.95 


Slicky Bear ABC 


20,95 


Numbers 


20,9b 


Opposites 


20,95 


Shapes 


20.95 


Summer Games 1 or II 


22.95 


Temple ol Apshai Tril, 


22.45 


World's Grtsi Ssball 


19.95 


World's GrtsI FtPall 


22.95 



Ballyhoo 

Clip An (Vol 1 or 3) 
Clip An (Vol 2) 
Copy II- 
Crossword Magic 
Crusade In Europe 
Cutthroats 
Deadline 
Early Games 
Easy as ABC's 
Enchanter 
Family Roots 
Fraction Factory 
F-15 Strike Eagle 
{graphics Expander 
Ghosl Buslers 
Hitchhiker's Guide 
infidel 

Leather Goddesses 
Load Runner 
Magic Spells 
Mastertype 
Malh Btaster 
Micro Lg, Baseball 
Micro Lg. Manager 
Micro Lg. Team 
Mind Forever Voy, 
Music Conslrucbon 
Newsroom 
One-On-One 
.Pitstopll 
PlanelfatI 
Header Rabbit 
Sargon III 
Sat (Haicoft Brace) 
Seastalker 
Sorcerer 
Speed Reader II 
Spellbreaker 
Spelt It 
Starcross 
Suspecl 
Suspended 
Terripie ol Apshai TrI 
Trinity 

Typing Tutor III 
Will Wriler 
Winter Games 
Wishbringer 
Witness 
Wont Attack 
Wodd's Gnst Bsball 
ZorkI 
Zork It or III 



22.95 
19.95 
22.95 
17.95 
2e,9S 
22,95 
22.45 
27.95 
19.95 
21,49 
22.49 
149.95 
19,95 
19.95 
22.95 
23.95 
22,49 
25.95 
26.95 
19.45 
20,50 
22,95 
26.95 
22.95 
22.95 
13.95 
24.95 
12.95 
30,95 
12.95 
23.50 
22,49 
22.75 
27.20 
45.00 
22.49 
25.95 
36.95 
26,95 
25.50 
27.95 
25.95 
27.95 
22.95 
22.49 
28.95 
27.9) 
22.95 
22.49 
22.49 
26.95 
19.95 
22.49 
25.95 



APPLE HARDWARE 
Col, 64K Card III El 49,95 

Apple Cat It 164,95 

Disk Drive Com 47.00 

Disk Drive Hi Tech 119.95 

Gibson Light Pen 148.00 

Grappler Buttered 114.95 

Grappler Pro 69.95 

Grappler (serial) 59,95 

Grappler C 69.95 

Notlink 44.95 

Kraft Joystick tIE tIC 23.95 

Koala Pad - 70.45 

Laser 126 Computer 394.95 

filach It Joystick 25.95 

Mach It! Joystick 31,95 

Micromodem HE 139,95 

Mockingboard A or B 64.95 

Mockingboard C 114.95 

Multiram CX 512K 209.95 

lUulliram HE S0/64K 124.00 

Paddlestlcks 26.50 

Parallel Printer Card 44,95 

Prometheus 1 200A 254.95 

Print-it 122.95 

RamfaclOf 512K 234.95 

Ramfactor t MEG 304.95 

BamworksS4K 119.95 

Ramworks 5t2K 2B9.9S 

Ramworks 1 MEG 279,95 

Super Serial Card 34,95 

Sysicm Saver Fan 59,95 

Thunder Clock 109.95 

Wildcard II 74.95 

ZEE 80A Checkmate 34.95 

Zoom IE 102.95 




PRINTERS 
Citizen 120D 
Star LV1210 
SiarNX-10 
Star Powenype 
Printer Stand 
Ohidata 1B2P 
Okimate 20 
Colored prntr ribbons 
Color Paper Pack 
Print Shop Refill 

MONITORS 

Magnavox Monitors CALL 

Amdek Color 600 414.99 

Sakata Color 169.95 



174.95 
119.95 
255.00 
344.95 
16.95 
229.95 
209,95 
CALL 
12.95 
12.25 



YOUR ORDER FORM 
SILICON EXPRESS 

5955 E. Main Street Columbus, Ohio 43213 



NAME. 



ADDRESS. 
CITY 



. STATE . 



.ZIP. 



CHARGE CARD * . 



. Exp. Date 



QTY. 


DESCRIPTION 


PRICE 




















Computer Type SHIPPING 




Phone 


Mo. _ TOTAL 










AadS3-00 Shipping 4.95in Hawaii and Alaska MasterCard, Visa accepted. Persona] checks 
allow 2 weeks 5.5^i saJes ia« far Ohio residenia Retiurns accepted wilhir 30 days 20tc 
resiocKing Jee if not r&f:4a{:ed wi]h same item Compatibiiily rol gjafaffleed 




All our products carry a minimum 90 day warranty j 
from the date of purchase. If problems arise, 
simply send your product to us via U.P.S. prepaid. 
Wc will IMMEDIATELY send you a replacement at 
no charge via U.P.S. prepaid. This warranty proves 
once aqain that... ^ ^, | ^„ ^. ()f„- ( i,sfoimr^! 




BIG BLUE PRIMER 




This is the affordable printer 
you've waited for! 8'/:" letter 
size, 80 column dot matrix, heat 
transfer printer features upper 

and lower case, underline, 

graphics, word prcx:essing, and 

much more. 

SALES 39,95 

List S199 



160-180 CPS 
N.L.Q. 180 
PRINTER 

This primer has a Near Letter 

Quality button on the front panel. 

No more turning the primer on and 

off. The 8K buffer will free up 

your computer four times faster 

than conventional printers and the 

high speed will keep you 

computing more than printing. 

Super graphics along with Pica, 

Elite, Italics, and Condensed print. 

Lifetime Wamnty on Print Head 

plus 6 month immediate 

replacement warranty. 

SALE $199 00 

List $499 



PRINTER & 

TYPEWRITER 

COMBINATION 

Superb Silver Reed letter quality 
daisy wheel printer/typewriter, 

just a nick of the switch to 

interchange. Extra large carriage, 

typewriter keyboard, automatic 

margin control, compact, 

lightweight, drop in cassette 

ribbon! Includes Centronics 

Paixallel Interface 

sALE$i79 95 

List S299 



COMSTAR 1000 
PRINTER 




Print letters, documents, ect., at 

100 cps. Works in Near Letter 

Quality mode. Features are dot 

addressable graphics, adjustable 

tractor and friction feed, margin 

settings, pica, elite, condensrf, 

lltalics, super/subscript, underline 

I & more. CBM Interface Included 

sALE$i79 95 

List S349 



1571 DISK DRIVE 




SALE $259.95 




List $349 



TV TUNER 

Now svntch your computer 

monitor into a television set with 

the nick of a switch .This Tuner 

has dual UHF/VHF selector 

switches, mute, automatic fine 

tuning and computer/TV 

selector switches. Hooks up 

between youi computer and 

monitor! Inputs included for 300 

ohm, 75 ohm, and UHF. 

SALE$ 49.95 

List $130 



14" RGB & 

COMPOSITE 

COLOR MONITOR 




High Resolution, 80 column 

Monitor. Switch from RGB to 

Composite. {C128 - IBM -Apple) 

RGB cable $19,95. Add $14.50 

shipping. 

SALES 237.00 

List $399 




MasterCard 



TO ORDER CALL (312) 382-5244 

8 am - 8 pm CST Weekdays / 9 am - 12 noon CST Saturdays 



VISA 



BEST SERVICE IN THE USA • ONE 

DAY EXPRESS MAIL • 15 DAY FREE 

TRIAL • VOLUME DISCOUNTS • 

OVER 500 PROGRAMS • 

CUSTOMER LIST OF OVER 

3,000,000 - LARGEST IN THE USA 



MUSICAL KEYBOARD 

This sturdy 40 key professional 
guage spring loaded keyboard 
gives the feel and response of a 

real keyboard instrument. 
(Conductor software required) 

SALE $59.00 

List $1 59.95 



1200 BAUD MODEM I 

Save time and money with this 

1200 Baud tnodem. It has many 

features you expect a modem to 

have plus 4 limes the speed! 

SALE $79 95 

List $199 



COMPUTER 
CLEANERS 

TV/Monitor Screen Restorer & 

Cle«niii8 HI, Disk Drive Ocaner, 

Anti-Stalk Keyboard Qeancr 

•Choose any of these three 

computer cleaners for only 19.95 

each! 

SALE $9 95* 

list $19.95 



SUPER AUTO 
DIAL MODEM 




Features on-line clock, dialing 
from keyboard, capture and 

display high resolution 
characters, and much more. 

SALE $29.95 

List $99 



SINGLE SIDED DOUBLE DENSITY DISKS 

.29^ 



100% Certified SW* floppy disks. Ufetlme 
WuTuty. 1 Box of 100 S29.00 List J1.99 each 



SPICIAI. BONUS COL PON 



We pack a special software discount coupon with every 

Computer, Disk Drive, Printer, or Monitor we sell! This coupon 

allows you to SAVE OVER $250 off sale prices! 



Name 



(EXAMPLES) 

List 



Sale Coupon 



B. I.Homepak 149. 9J 

Super Hu«y II SI9.9S 

Flight Control Joystick 1 1 9.9J 

Newsroom M9.9J 

Leader Board $39.95 

TV Tuner S99.95 

Commando 134.95 

Create with Garfield S29.95 

Geos SJ9.95 

SAT The Perfect Score S69.95 

World Gaines S39.95 

Trinity SJ4.93 

CI 28 Partner S69.95 

Robotics Workshop S 149. 93 

C128 Programmers Reference Guide S2! .95 



$19.9S 
S12.95 
$I2.9S 
S32.9S 
S23.9S 
$49.95 
S21.95 
516.95 
S39.95 
$42.95 
S24.9S 
$24.95 
$49.95 
$124.95 
S12.95 



in. 95 
iii.9i 

$10.00 
i29.9S 
S22.9S 
i39.95 
$21.95 
S14.9S 
$37.95 
$39.95 
$22.95 
$22.95 
$44.95 
Slt4.95 
S9.9S 



FOR FREE CATALOG CALL 

(3 12] 382-5244 

CALL BEFORE YOU ORDER: PRICES MAY BE 
LOWER & WE OFFER SPECIAL SYSTEM DEALS 



BLUE CHIP 



ea. i-^ 



I 



(See over 100 coupon items in our catalog.) 



ACTION PACK (D) S1*.9S 

LEAr>ER BOARD (D) 2J,« 

LEADER BOARD COtfltSES (D) . . . U.9S 

MACH 5 (Q 1».9S 

MACH 12a (Q »,« 

TENTH FRAME (D) li.9S 

ACE OF ACES (D) ,...SU.*S 

DAM BUSTERS (D) U.9S 

FIGHT NIGHT (D( II.»S 

HARDBALL (D) li.»S 

LAW OF THE WEST (D) !»,« 

KILLED UNTIL DEAD (D) W.W 

BARON (D) 114.99^1 

MILLIONAIRE (D) 14,»S ■ 

TYCOON (D) H.W ^ 

TOM WEISKOPF PRO GOLF (D> tll.H^| 

MR. TESTER (D) S.M ■ 

PRINTERS LIB. I (D) l.tS ■ 

PRINTERS LIB. 2 (D) I.H H 

DATABASE MGR./PLUS • CIM (D). . . . 14.W ■ 
TASK FORCE (D)...... 4,*5 ^ 

PRINT SHOP m ns,»5 

GRAPHICS LIB. 1^0(3(0) ISJS 

COMPANION (D) nm 

TOY SHOP (Dl 3LK 

WHERE IS CARMEN SANDIEOOtD) 2l.»S 

GRAPHICS LIB. HOUDAY ED. (D) Ii.»5 

HEART OF AFRICA (D) ». 

ONE ON ONE (D) ». 

PINBALL CONTRUCnON (D) ♦. 

MUSIC CONSTRUCTION <D) ». 

RACING DESTRUCTION CD) ». 

.MARBLE MADNESS (D) a, 

CHESSMASTER (D) 33. 

BATTLEFRONT (D) 15. 

LORDS OF CONQUEgr (D) a, 

221 B BAKER STREET (D) SIT, 

MERCENARY (D) IT, 

NEVER ENDING STORY (D) IT, 

MIND PURSUIT (D) P.! 

VIDEO TITLE SHOP (D) 17, 

THEATRE EUROPE (D) !».! 

BODY TRANSPARENT (D) »(.« 

EUROPEAN NATIONS k LOCATIONS (D) . aW 
STATES AWD TRAITS (D) ZLK 

SARGON II (D) S».*S 

SAT VERBAL (D) 14.9S 

SAT MATH (D) I4.9S 

SAT PRATICE TEST (Dl 14.95 




SUPER HUEY II (D) ttL«S I 

TALLADEGA (D) W.W I 

BEYOND FORBIDDEN FOREST (D>M.f3 I 




CHAMPKJNSHIP WRESTLING (D) IO.M I 

FAST LOAD(q BJ9 | 

MOVIE MONSTEIHD) B 

WIKTER GAMES (D) 2U9 I 

WORLD GAMES (D) ILH I 

WORLD KARATE (D) MJS I 

WORLD'S GREATEST FOOTBALL (P)...-0.g I 



FIREBIRD 



COLOSSUS CHESS (D) m-fsH 

ELrTE6*lDI tUSH 

FRANICIE GOES TO HOLLYWOOD (D) ....ItJiH 

BATTLE OF BRITAIN/MIDWAY (D) MS ■ 

IWO JIMA/FAUUaANDS (D) «.M ■ 

TALKING TEACHER (D)... n.W ^ 

CARD WARE (D) t«.*s| 

HEART WARE (D) »,»S I 

PARTY WARE<D) ».»S I 

WARE WITH ALL KIT (D) «,»5 I 

HOLIDAY PRINT PAPER (D) 7,»S I 

FLIGHT SIMUtJkTOR II (D) ni.»S I 

JET (D) I5.»S I 

FOOTBALL (D) H.»5 I 

BASEBALL ID ). JI.«| 

ROADWAR XCO (D) tU.*S I 

BATTLE OF ANTIETAM (D) 3I.»S I 

GETTYSBURG (D) «.»* I 

MECH BRIGADE (D) 32.»S I 

NAM (D) 23.« I 

U.S.A.A.F. (D) 32,»5 I 

KAMPFGRUPPE (0) J1.»S I 

WAR SHIP (D) ».*» I 



SOFTSYNC 



ACCOUNT AKT. INC. C12« (D). . , . J».« 

DESK MANAGER (D) 24,1 

KID PRO QUO (D) !».« 

MODEL DIET (D) l».» 

TRIO C64 (D) »J 

DELTA DRAWING (Q ... 

NUMBER TUMBLERS (Q ».1 

SEA SPELLER (C) ».J 

UP & ADD'EM (O ».l 



Add $3.00 (JIO.OO lor hordwora) lor shipping, hondling, and insurance. Illlnoii r»»ld«nt» plaaui odd 6V, % soles tox. Add $6.00 ($20.00 for harelware) lor CANADA 

PUERTO RICO. HAWAil, ALASKA. APO-FPO orders. All orders must be in U.S. Dollar.. WE DO NOT EXPORT TO OTHER COUNTRIES EXCEPT CANADA Enclose Coihier 

Check. Money Order or Perwnol Cheek. Allow 14 doyi tor delivery, 2 to 7 doyi for phone ordera, 1 doy expreu moli. Pricei & Availobillty (ubiect lo ehonge without 

VISA-MASTtR CAIO-CO D "«••''•- ""'■*™''»"'lPP'"g Pfl"» voryoecordlng to weigh). Pleow coll for amount. No APO-FPO lor Moniton. . _ - . . , 

L.U.li. on ptMxw oroert only. 



ness market," says Brian Kennedy, marketing manager 
for Star Mkronics, a major printer manufacturer. "This 
is determined by the price. In general, they start at 
$900-$ 1,000, so this is not going to penetrate the 
consumer market too much." 

Kennedy sees three strong points for these new 
dot-matrix models that make them competitive with 
daisywheel printers. First, for business correspon- 
dence, which has traditionally been geared toward a 
daisywheel printer, the new 24-pin printers have a 
letter-quality mode (as opposed to near-letter-quality 
mode on 9-pin printers) that is virtually indistinguish- 
able from daisywheel print. In 99 percent of the cases, 
says Kennedy, people would accept it as a good vehicle 
for business correspondence. 

Second, these new dot-matrix models offer the 
high speed that a daisywheel cannot provide. The 
average speed of a daisywheel is between 30 and 40 
characters per second (cps), while 24-pin printers in 
letter-quality mode run around 100 cps. Plus, they 
offer higher speed draft printing for documents not 
requiring letter-quality type. Draft mode on some 24- 
pin printers can operate as fast as 300 cps. 

Third, 24-pin printers offer high-resolution graph- 
ics. Daisywheels are limited to the characters on the 
printwheel. 

Beyond those advantages, many 24-pin printers 
provide additional flexibility to the user. Juki Office 
Machines, which targets its 24-pin printers primarily to 
the business and government users, has printers that 
let you load and print sheets and envelopes at the same 
time. For example, the Juki Model 7200 also offers 
extremely high-resolution graphics (360 X 360), can 
print on forms as small as a business card or as large as 
17 X 24-inch paper, and can operate under adverse 
conditions like high humidity. These capabilities make 
it competition not for 9-pin dot-matrix printers or 
daisywheels, but for highly sophisticated laser printers. 




EINIU#=%RrGE:i> MiOEte 

ENLARGED 6, CONDENSED 

EMLARCED «. EMP-H^SkS I ZED 

EHLARCED & EMPHASIZED & CONDEHSED 



50,000 
40,000 

30,000 

20,000 

10,000 

Total 

Units SSold 



f (B )2+6x 







Example Report Legend: 
;{:■;{: = Last Year's Actual Sales 
jH;:; = This Year's Projected Sales 
SI = This Year's Actual Bales 

The secret to Output Techtwlogies' 700 series of printers is 
the unique Tri-Head printing mechanism. By using three 
nine-pin printheads that operate simultaneously, these print- 
ers can run at speeds of up to 700 characters per second. 
Prices begin at $1,995. 







NLQ Mode 



n 



utility Mode 



Okidata's dot-matrix business printers offer high print quality using a dual nine-pin 
printhead. In NLQ mode, both columns of staggered print wires strike the ribbon to 
create overlapping dots and develop a fully formed character. Characters are formed 
in a single pass of the print line at one-half the rate of utility mode (100 cps). In 
utility mode, twice as many characters are formed in the same amount of time (200 
cps). Only one column of print wires operates per print line to form draft characters 
without overlapping dots. 



26 COMPUTEI March 1987 



'64 or 128 Software 

Take your Pick! 



BASIC Compiler 

Complete BASIC compiler 
and Qevelopmant package. 
Speed up your programs 3x 
to 35x. Compile to machine 
code, compact p-code or 
botti. A groat package that no 
software library should be 
without. '128 version: 40 or 
80 col. monitor output and 
FAST mode opsration, exten- 
sive 80-page programmer's 
guide. C-e4 $39.95 

C-12S $59.95 



Super C 

For software development or 
school. Learn the C lang- 
uage on the '64 or '128. 
Compiles into last machine 
code. Combine M/L & C 
using CALL; 51 K available 
for olDJect code: Fast loading; 
Two standard I/O librarys 
plus math & graphic libraries. 
Added '128 features: CP/M- 
like operating system; 60K 
RAM disk. C.64 $59.95 
. C-12a $59.95 

\iB^^^° Speedtenn 

Let your 64 or 128 commun- 
icate with the outside world. 
Obtain information from 
various computer networks. 
Flexible, command driven 
terminal sohware package. 
Supports most modems. 
Xmodem and Punier transfer 
protocol. VT52 terminal emu- 
lation with cursor keys, large 
45K capture buffer & user 
definable function keys. 
Contain* both varsion* 
C-64 & 0-128 $39.95 

Chartpak 

Create protassional quality 
charts fast — without pro- 
gramming. Enter, edit, save 
and recall data. Interactively 
build pie, bar, line or scatter 
graph. Set scaling, labeling 
and positioning. Draw charts 
8 diffareni formats. Statistical 
routines for average, standard 
deviation, least squares and 
forecasting. Use data from 
spreadsheets. Output to most 
pfintars. C-64 $39. 95 
C-12a S39.9S 



BASIC 
Comoiler 



Speeds up your BASIC programs by 
3 to 35 times. For C-64 and C-1 28 



C Language 

Compiler 

Learn the language of 
the 80's and beyond 
on your '64 and '128 



Use your 64 or 128 to commuri' 
icatewith the outside world 







SpeeaTerni 



x-tJTi: rt.TO v\s.i 
*" iB-^^Kian rtTdw. iL 

n ii 



ZW'P 



soi33:Lrrf ^- ■ 




COBOL 

Now you can learn COBOL, 
the most widely used 
commercial programming 
language, on your 128 or 64. 
COBOL Compiler package 
comes complete with syntax- 
checking editor, interpreter 
and symbolic debugging 
aids. New '128 version worl<s 
wilh 40/80 column monilors 
and is quicker than the '64 
version. C-64 $39.95 
„ C-12S $39.95 




Super Pascal 

Complete system lor devel- 
oping applications In Pascal. 
Extensive editor. Standard J 
& W compiler. Graphics 
library. If you want to loam 
Pascal or develop software 
using the best tool available. 
Super Pascal is your first 
choice. Added '128 features: 
RAM disk; 100K source/one 
drive or 2SOK/two; 80/40 
column. C-64 $59.95 
Naw! C-128 $59.95 

Cadpak 

Easy-to-use interactive draw- 
ing package for accurate 
graphic designs. Dimension- 
ing features to create exact 
scaled output to all major 
dot-matrix printers. Input via^ 
keyboard or lightpen. TwoL 
graphic screens for COP'it'ing^ 
from one to the other. DRAW, 
BOX, ARC, ELLIPSE, etc. 
available. Define your own 
library of symbols/objects- 
store up to 104 separate 
Objecls. C-64 $39.95 

C-128 $59.95 

PPM 
Comprehensive portfolio 
management system for the 
64 and 1 28. Manage stocks, 
bonds, mutual funds, T-bills; 
record taxable or non-taxable 
dividends & interest income; 
reconcile each brokerage 
account cash balance with 
the YTD transaction file; 
on-line quotes through Dow 
Jones or Warner. Produces 
any type of report needed to 
analyze a portfolio or 
security. C-E4 $39.95 

C-128 J59.9S 




Pascal Language 

Compiler 



S Expand your prograrDmlng- 
sSihbrlzons^bn your '64 andwi 
iii;t28 with ithis. second ; most:-; 
iiiii^: :,::: U3eS;-:fer> gu agei':::;:!:!;:;:; J:- 







L 


■ 






- ^ .: m 


an j«i ■. H'Uitii ikiiriiii mil] uf7.« im.u njv. jt 1 ■ 
kiT>»k a »'.iv:in ixuviiil hjij ia»ji !tt,?i nAt jz \ ■ 






Marillger B EE 


SOJM 

Tim 





Call now for the name of the dealer nearest you. 
Or order directly form Abacus using your MC, Visa 
or Amex card. Add $4.00 per order for shipping. 
Foreign orders add $12.00 per item. Call (616) 
241-5510 or write for your free catalog. 30-day 
money back software guarantee. Dealers inquires 
welcome-over 2000 dealers nationwide. 



Abacus 

P.O. Box 721 9 Dept C3 Grand Rapids, M! 4951 
Phone 616/241-5510 'Telex 709-1 01 'Fax 61 6/241 -5021 



imi 




sm PRINTER 




1-800-345-5080 



Caught In-Between 

The price and capabilities of 24-pin dot- 
matrix printers put them in a very interesting 
nnarket position right now — somewhere be- 
tween 9-pin printers and laser printers, and 
parallel in some ways to daisywheels. 
Though their strongest appeal may still be to 
the business market, consumer interest is 
beginning to pick up. 

"The 24-pin market is really growing in 
both areas [business and consumer]," says 
Dennis Cox, peripherals product manager for 
Epson America, a large printer manufacturer. 
"You're getting higher performance 24-pins 
that are going into the business market, and 
they are taking away significant chunks of 
the daisywheel market. On the other side, 
moving down, they are going into more 
price-sensitive environments, which tend to 
be the home and small business." 

The overlap with the lower end of the 
printer market comes between high-end 9- 
pin printers and low-end 24-pin printers. In 
the $600-$l,000 price range, both are repre- 
sented. In the long run, one or the other will 
likely be bypassed. Representatives of lead- 
ing printer manufacturers predict that high- 
end 9-pin printers will be replaced in that 
market position by low-end 24-pin printers 
and that most 9-pin printers will eventually 
sell for under $300 or $400. 

Several other factors will also be affecting 
the printer market during the next couple of 
years. New printer drivers-^the short software 
programs that allow your word processor, 
spreadsheet, or other application to send the 
right signals to different printers — will be 
written to take advantage of the 24-pin print- 
ers. Much of existing consumer software is 
compatible with 9-pin printers; 24-pin printer 
drivers will have to be widely available for 
those printers to become accepted by 
consumers. 

Several years from now, color printers 
are likely to be a larger part of the market 
than at present. While not a necessity for the 
computer owner now, they have a long-term 
potential that will quickly be realized when 
color-capable photocopiers become widely 
available. The fast-growing popularity of 
specialized print packages like The Newsroom 
and Print Shop are making it more desirable. 
Any dot-matrix printer, no matter what the 
pin configuration, is technically capable of 
printing color with the right hardware and 
software setup. Twenty- four-pin printers have 
finer pins that offer sharper resolution. As 
color becomes more of an issue for the printer 
market, so will the quality of that color. 

More immediately important is the re- 
cent introduction of inexpensive IBM PC 
clones into the U.S. market. Printer manufac- 



6E0S INFO 

If you US9 GEOS then our new book, GEOS Inalda and Out, has the info you need. 

A detailed Introduction Is laid out for the novice-beglnning with how to load the 
GEOS operating system... how to create a backup.. .how to alter the preference 
manager.. .how to format dlslts.. .learn geoWrite and geoPaInt In detail.. .use geoPaInt 
for designing floor plans or drawing electronic diagrams. Easy-to-undersland 
examples, diagrams and glossary are Included to enlighten the beginner. 

The advanced user will find more detailed Information on GEOS's internals and 
useful tricks and tips. Add a constant display clock-Includes assembly and BASIC 
listing... complete listing of our FlleMaster utility (converts your programs to GEOS 
format with an icon editor) with a line by line explanation. ..create a single-step 
simulator for obsen/ing memory and the various system registers... learn about 
windows and how to use them to your advantage-understand GEOS file structure. 

If you're ]ust getting started wltti GEOS or getting to the point of wanting to add your 
own applications, then GEOS lnald» and Out will help you on your way. $1 9.95 




To receive your copy of GEOS Inalda and 
Out and/or GEOS Tricks & Tips, call now 
for the name of the dealer or Ijookstore near 
you. Or order directly using your Visa, MC or 
Amex card. Add $4.00 per order for shipping 
and handling. Foreign orders add $10.00 per 
book. Call or write today for your free catatog. 
Dealer inquires welcome — 2000 nationwide. 

Order lx)th today! 



ofiti^S 



So"** 



You Cin Count On 



cor^--Q^QQ fricffs & Tips 

Continuing the tradition estaWished by our famous 0-64 reference library, GEOS 
Tricks i Tips is a collection of helpful techniques for anyone who uses GEOS with 
their Commodore, irs easy to understand without tallying down to the reader, and 
detailed In the applications of the routines. Includes a font editor to create up to 64 
point text and a machine language monitor. A perfect companion volume to GEOS 
Inalda and Out. Available Second Quarter. $1 9,95 

GEOS, geoWrite, geoPaint are tradenames o( Borifeley Sottworks. 




[ttttthiiii 



P.O. Box 7219 •Dept.C3 

Grand Rapids, Ml 49510 

Telex 709-101 • Fax 616/241-5521 

Phone 616/241-5510 



Just a few of our books 




«> ro □. 



Antlotny oflh* C-t4 

InsktersguktatCMInliimib. 
Graphics, sound, l/0,Jiamil, 
momorv maps, and mucii 
more. Complete comment«d 
ROM listings. 300pp $19.95 



Antlomy of Iht 1S41 Drin 

Best handbook on this drlv« 
explains all. Filled with many 
examples programs, utilltlss. 
Fully commsnied 1541 R0li( 
Ibllngs SOCpp S19.9S 



Tricm i Tin farlhi C-64 
CollKtion of «asy-1o-use t*ct>- 
niquos: advancftd graphics, 
improved data input, CP/M, 
ennan(»d BASIC, data hand- 
ling and more. 2T5pp $19.d5 



PHkt t Ptliu for (As M 

Includes In-depth &xplanatk?ns 
o1 PEEK. POKE, USR, and 
other BASIC commands. 
Learn the 'inside' tricks atwut 
your '64. 200pp S14.9S 



anphlct Book for rh> c-e4 

Best reference, covers basic 
and advanced graphics. 
Sprites, Hires, ^%JltIcoJof, 30- 
graphics, IRQ, CAD, project- 
ions, curves. SSOpf) $19.95 



i\m 



INTERNALS 




1571 INTERNALS 



TRICKS & TIPS 




^■iim 



PEEKS & POKES 




i: 



BASIC 7.0 
INTERNALS 





0-DJ3 O 



Important C-1 28 information. 
Covers graphic chps, MMU, 
L^O, do column g raphes and 
fully commented ROM 
listings, mora. SOOpp $19.as 



1S71 INTEnNALS 

Essential reference. Inlemal 
drive functions. Explains 
vanous disk and file formats. 
Fully-commenlet) ROM 
Itaings. 450PP $19.9S 



C-12> TRICKS « TIPS 

Fascinating and practical Into 
on the C-128. BO^xjl hires 
graphics, bank switching, 
300 pages of useful infcmi- 
atbn lor evwYone. S19.9S 



C-12SP£EKSt POKES 

Dozens of programming 
r^ick-h'tters. technk^ues on 
the operating system, stacks, 
zero page, pointers, wit 
BASIC. 240PP $1E.95 



C-tilBAStCTJItnlmmmll 

Got all tfie inskle Info on 
BASIC 7.0. ThH exhaustive 
handbook is conxDeie with 
fully commented BASIC 7.0 
ROM listings. S24 95 




CM 
If) 

o ' 

(31^ U) 
TT CD lO 

h^ f *! ^ 

s « S s 

® 9- • ID 

a. -pv o 
2 p CL 



Lyco Computer 

Marketing & Consultants 



Since 1981 






^ 



%^' 



Lyco Computer is one of the oldest and most established computer suppliers in 

America. Because we are dedicated to satisfying every customer, we have 

earned our reputation as the best in the business. And, our six years of 

experience in computer mail-order is your assurance of knowledgeable 

sen/ice and quality merchandise. 

We fill 95% of all orders every month. Here's how: • lowest prices 

anywhere • multimillion $ factory fresh inventory • courteous, 

knowledgeable sales staff • 24-hour shipping on in-stock items 

Plus: • free shipping in US on prepaid cash orders • no deposit on 

C.O.D. orders • no sales tax outside PA • full manufacturers' 

warrantiesapply« airfreight, UPS Blue. Red shipping available 

Call Lyco Computer. See for yourself why so many customers 

keep coming back to Lyco for the best prices, the most 

complete inventory, and our fast and courteous service. 

To order, call toll-free: 
1-800-233-8760 

In Penna.: 1-717-494-1030 

Customer Service: 

1-717-494-1670 

Or write: 

Lyco Computer, Inc. 

P.O. Box 5088 

Jersey Shore, PA 17740 





:i 



Mastei'Card I 



Risk-Free Policy: • prices show4^o cash 
dtscouni. add i" c torcredit cards •APO. FPO, 
imemalfonal: add S5 plus 3S far priority mail 
• 4-week clearance required on personal 
checks * compatabiiily nol guaranieed 
m return autfioriialion required • we 
Chech lor credit card Iheft 



1-800-233-8760 




PRINTERS 



Se^kosha SP-10Q0VC S)65 

Panasonic lOSOi _._ Si 

Star NX- to $igg 

Slar N'P-10 S169 

Cilizen 120-0 5179 

Epson FX.85 $355 

JuKi 5510 $435 



Panasonic 

1091i S269 

10921 $CALL 

S*19 

1595 S549 

3131 S249 

3151 $375 

1080 AP lie SZ39 







wCITIZEN 




Premiere 35-,, 



,.£469 



EPSON 

LX-B6 $225 

EX 600 $479 



MSP-10 S2e5 

MSP-15 5385 

MSP-20 S325 

MSP-25 5485 



SEIKOSHA 




SP lOOOAPIIc $199 

SPlEOOAilBM Sai5 

SP laOOASi R5232 $215 

SP180VC S159 

SPlBOAi S165 

SL-eOAi $375 

MP1300AJ $439 

MP6300AI S579 

BP5420Ai $1099 

1 300 Color Kil Si 19 _ 

BP-5420 Ribbon $12 50 

"""^^"" "" Modems 

Avatex 

1 23Qhc.,. 

12O0.- 

Zoom 

PC 1200 ST (iniernal) S1B9 

PC 1200 XL (iniernal) $259 

PC 2400 ST (iniernal) $329 

PC 2400 XL {iniernal) $349 

Hayes 

Smartmodem 300 ..___ $133 

Smartmodem 1200. S377 

Smartmodem 1200B ._ K47 

Smartmodem 24O0 _._ $593 

Micromodem lie ..„,, .....SCALL 

Smart 300 Apple lie SCALL 

Anchor 

Volhsmoaem 12 _.. si 35 

Commodore 

1670 S129 

Supra 

1064 Modem S49.95 

Supra 300 $39.95 

Su|ira 1 200 $1 49,85 

Atari 
XM-301 $35 



.,$89 '' 



Monitors 



Teknika 

MJ-22 .,...S249 

riU-30S $309 

MJ-503 S529 

ZeriUi 
ZVM1220 $89 



ZVM 1230 S89 

ZVM 1240 $139 

ZVM 1350 $365 

Hitachi 



CM-1455S 13- $526 

CM-1457 A 13- RGB $679 

Tliomson 

365 12 RGB SCALL 

Monochrome from 

Panasonic 

TR-122 MYP 12" Amber TTL S139 

Tfl.122M9P 12- Green TTL $139 

Commodore 
1902 Color 5289 



MM-1218 12" Green $99 

MM-1220 12- TTL Amber $129 

CM-1216D 12-RGB $385 



1802 C S215 

NEC 

Multisync SCALL 

Princeton Graphics 



MAX- 12 Amber $175 

HV-iaRGe $458 

SR12RGB , $575 



We slock Inlertaelng lor Atari, CommodorB, Apple and IBM 
/ 





COMMODORE 

SOFTWARE 



Access: 

Leader Board.. S24.95 

Mach5 $23.95 

Mach-1Z8 $29.95 

1 0th Frame $24.95 

Execulive Tournament $13.95 



Toumamenl#l $13,95 

Triple Pack. $14.95 

Famous Cour3es-64 $16.95 



RrsblnJ: 

Colossus IV $21.95 

Elite $19.95 

Pawn S28.9S 

Talking Teacher $28,95 

Traker $31.95 

Hi Tech Expressiotis: 

Ware With All $11. 7S 

Card Ware $6.75 

Heart Ware $6.75 

Party Ware $9.75 



Unison Woitd: 

Art Gallery 1 or 2 $15.95 

Print Master $22,95 





tappkz 



SOFTWAflE 



Activlslon: 

Portal $26.95 

«^p / Titanic SNew 

^1 / Champonship Baseball $22.95 

'^* / Ctiampionship Basketball „ $22.95 

GSL Ctiampionship Football $22,95 

Game Maker ..., , $24.95 / Access: 

Hacker 2 S22 95 / Tnple Pack $14.95 

"-^"V"""^ S^2 35 / ACIuislon: 

Leather Goddesses $22 95 

Moonmisl $22.95 

iluSicStufiiO $22.95 

:ky Horror Piaure Show $19.95 

■| Library $13.95 

Library SI 3.95 




SOFTWARE 



•nes $22 95 

$22.95 

irs .,$22-95 



Endiantef Trilogy $49.75 

Game Maker $31.75 

Leather Goddesses S2S.75 

Term Paper $35.75 

Championship Basketball $26.95 / Hacker S26.9S 

Championship GoS $New / Hacker 2 $29.95 



Access: 

Leader Board $24.95 

Tournameniffi $14.95 

Activislon: 

Borrowed Time $26.95 

Championship Basketball- $26 95 

Championship Golf - $32 95 



S1995 

Sai95 

S2296 

$1995 

$22,95 

,.$19 95 



$25.; 

.$22.75 
i15.75 
18,75 
.75 



MICKipnise: 

Crusade in Europe ,.,$24,95 

Decision in Deser! $24.95 

F-IS Strike Eagle $22,95 

Silent Service $22.95 

MIcroleague: 

Micro League Baseball $25.95 

General Manager $25.95 

Slat Disk $16.95 

86 Team Disk $14.95 

BroderbJrtd: 

Airhearl $22.75 

Ancient Art of War $25.75 

ml Shop $30.75 

Print Shop Companion $25.75 

Carmen San Diego (USA) $28.75 

On Balance $62,75 

BankSl. WnIer(128Kl $43.75 

Strategic Simulations: 

Baniegruppe $38.95 

Colonial Conquest $25.95 

Gettysburg $35.95 

Phantasiell $25.95 

Shard ol Spring $25,95 

Wizards Crown $25-95 



$24,95 

$24,95 

$15,95 

,.,.$13.95 
..SNew 




Sublogic: 

Flight Simulator M S32-95 

let Simulator $25-95 

gh! Mission Pinball S22-95 

lery #1 - »6 $69.95 




Leather Goddesses $25,75 

Moonmisl ..,„- $25,75 

Music Studio $32.75 



Bf $23.95 

lamp $23,95 

star -S23.95 

(S $23-95 

,52395 / MIcroprose; 

$23.95 / Conflict in Vietnam $25.75 

Crusade in Europe $25.75 

Decision in Desert ,.„...„„.„„ .,,,$25.75 

F-15 Strike Eagle ,,$21,75 

Sitent Service $21,75 

Mlcroleague: 

Micro League Baseball $25,95 

General Manager $25.95 

Stat Disk $16-95 

'86 Team Disk SI 4.95 



Leather Goddasses S23 95 

Little People $29.95 

Mindshadaw $26 95 

Moonmisl $23.95 

Music Studio $35.95 

Shanghai $26,95 

Tass Times $26-95 

Strategic Simulations: 

Computer Basetiail $24.95 

Sublogic: 
Flight Simulator It $32.95 

Epy«: 

Apshai Trilogy $22.95 

Rogue $22 95 

Winter Games $22.95 

Firebird: / Epyx: 

Pawn $28,95 / Apshai Trilogy $24.75 

Unison Wond: / Destroyer $24,75 

Print Master $24,95 / '<arate Champ $19.75 

Art Gallery lor 2 $18.96 / Movie Monster $24,75 

Rogue $19.75 

Winter Games $24.75 

World Games $24,75 

Strategic Simulatlaiu: 

Battle of Antetiem $3S.7S 

Computer Basebail $14.95 

Gettysburg $38.75 

Knights in Desert $25.75 

Shard of Spring $25.75 

Sublogic: 

Jei Simulator $34,75 

Scenery Japan $15.95 



SOFTWARE 
Activlslon: 

Pebble Beach ,.- $32,95 

Portal $28,95 

Championship Basketball $26 95 

Ballyhoo $25,75 

Enchanter Trilogy,,,,, $49.75 



Scenery San Francisco $15,95 

Scenefyil ■ #6 $69.95 

Broderbund: 

Ancient Art of War. $28.95 

PnntShop $37.75 

Print Shop Companion $31.75 

Graphic Libraiy 1 or II $21 ,75 

Karateka $21,75 

Toy Shop $39,95 

Sank St- WrSer $49 95 / y/g j,o5„ over 

Unison Wprld: / 5000 lilies ol 

Art Gallery 2,,., , $18.95 / soitware. It it's not 

News Master. $55,75 / listed, coll for price 

Print Master $36,75 / and avBilaWlilyl 




.v^^^ 





COMMODORE 




HARDWARE 






AATARI" 

SOFTWARE 




AATARI 



12BCompuier S249 

(571 Dtsk Drive $239 

S4CCompuief $175 

1541 C Disk Drive $175 

1902Monilor S2B9 



Access: 

Leader Board $23.95 

Tournament #1 ,.„„., $14.95 

Triple Pack $14.95 

lOlhi Frame $26.75 



1B02 Monilor S215 

C-17CKn28KRAM S109 96 

1750 RAM 3169.95 

Comiel Enhancer 2(300 (C-S4I S149 

Indus GT C-64 Drive S179 

C-135QMOUS9 , S39 

GEOS $CALL 




AATARI 



Activislon; 

HscWm $15.95 

Hrlch Hikers $22.95 

Leather Goddesses $22.95 

Moonmisl $22,95 

Music Sludio-- $22.95 

Microprose: 

Conflict in Vielnam... $25,95 

Decision in Desert ......—.- $25.95 



SOFTW/ 

Access: 

Leader Board $24.95 

TournamenlWl , S 13.95 

lOtri Frame $23.96 

Adivlsion; 

Ballyhoo S23.95 

Borrowed Time , „.,.„,,. $32.95 

Ctiampionship Baseball S29.95 

ChampionsMp Basketball , , $28.95 

Championship Got! SNew 

Game Maker SNew 



R 

Sci 

Spon 

TassT 

Trinity .. 

Hacker $28.95 / Transtorn- 

Hacker 2 S32.95 / Microprose 

Leather Goddesses .S23 95 / Acroiet 



SF 31 4 Disk Drive S219.95 

SF354 Disk Drive $175.95 

1050 Drive (XE. XL series) $129.95 

SHD 204 20 MEG Drive $655.95 

65XE $CALL 

520 ST mono $CALL 

Indus GT Atari Drive $179 



Purchase orders 
accepted trom 
educational 
.InstitL^tiojis. 
Also, ask about 
volume discounlsl 



Little People _ $32.95 

Moonrnisl.... _ $23.95 

Music Sludio $37.95 

Paint Works $43.95 

Portal $34.95 



F-15 Strike Eagle $22.95 

Kennedy Approach $19.95 

Silent Service S22 95 

TopGLnner ,....,... $19.95 

MIcroleague: 

Micro League Baseball 324.95 

General Manager S24.95 

Stat Disk $15-95 

'86 Team Disk $13 95 

Broderbund' / 

Print Shop S25.7S / Alienate Realitj^^The City S3196 

Print Shop Companion $22 75 / "'"""''^ R«al,ty-The Dur^geon $26,75 

Graphic Library I, II, or III .$15.75 / Microprose: 

Karateka ,.,...$18.75 / Silent Service $24 95 

Bank St, Wriler $29.75 / F-15 Strike Eagle $24.75 

Opiimried Systems: / OpNmlied Systems: 

Action $46.95 / PSfSOnal Pascal $48.95 

Action Tool Kit $18.95 / Personal Prolog $51.75 



F- 15 Strike Eag 

Gunship 

Kennedy Approach 

SiieniSewce 

Top Gunner 



Shanghai S28.9S 

Tass Times $32,95 

Data Soft: 

Mercenary $26.75 

Marcenary-Second City $17.95 



Microieagu^; 
Micro League Baseball.. 

General Manager ,..,.. 

Stat Disk ..,. 

■86 Team Disk 



Micro League Wrestling 

Broderbuiid; 

Print Shop 

Pnn! Shop Companion 

Graphic Library I, II, or III 

Karaleka... S 

Bank St Writer S3; 

Slrategic Simulations: 



Basic XE $46 95 

Basic XL $36,95 

Basic XL Tool Kit $18-95 

Mac 65 -,-,$46.95 



Mac 65 Tool Ki! S18.95 

Strategic Simulations: 

Battle of Antetiam $32.95 

Nam $24,95 



Strategic Simulations: 

Phantasie , $24.95 

Phantasie II $26.75 

Epyx; 



Wargams Ccnslruction $18.95 

Wizards Crown $24,95 

Warship $39,95 

Sublogic: 



ApshaiTnlogy $22,95 

Super Cycle $22,95 

World Games $22.95 

Wresiting $22,95 



Firebird: 

Pawn $28,95 

Starglider $28.95 

Golden Path $31.95 



Flight Simulator II $31.95 

Night Mission Pinball S21 .95 

Scenery Ja,pan $15.95 

Scenery #1 -m $69.95 

Epyx: 



Eidolon $22.95 

Karate Champ $18,95 

KoronisRitl $22.95 

Summer Games $23.95 



Accounts $174.95 

VIP Professional $124.95 

VIP Professional Lite $74.95 

Unison World: 



Gemstone Healer $18.95 

Gettysburg $36.95 

Phantasie II $24,95 

RoatJ War 2000 $24,95 

Shard of Spring $24,95 

Wizards Crown $24,95 

War in the South Pacific $39 95 / ^ 

Wargame Construction Set $2195 / See 

Sublogic: / ^P/' 

Flight Simulator It $31,95 / Deslrov 

Jet Simulator .,,.$25.95 / 'Lara's C 

Sublogic Baseball $31.95 / '^°'"^ ^°'' 

Sublogic Football $25,95 / ''^"^^' '^^'^' 

Baseball Stadium Disk $16.95 / Worid Games 

Scenery Japan $15.95 / Wrestling 

Scenery *1 #6 $69.95 / Firebird; 



An Gallery 1 or 2 $18.95 

Print Master $24.95 

Zoom: 

Zoom racks $54.95 

Zoomracksli .....579.95 



Epyx: 

Apshai Trilogy $22.95 

Destroyer $22.95 

Fastfoad , $22.95 

Karate Champ $17.95 

Muitiplan $35,95 

VorpolUtility Kil 521.95 



Colossus IV.. 

EWe 

Unl$on Worid: 

Art Gallery 2 

Print Master.. .,..,. 



World Games,.- $22.95 

Wrestling $22.95 



turers have already started to see the effects from the 
proliferation of these machines into the consumer and 
business arenas, raising the demand for low-end print- 
ers even further. Some budget-conscious new owners 
may choose to buy the most inexpensive printer avail- 
able, but those willing to spend $500-$l,000 will likely 
opt for one more fully featured. 

Other Technologies 

Dot-matrix and daisywheel are not the only print 
technologies being used. Ink-jet printers, which form 
characters on paper by spraying ink through tiny tubes, 
are sold by several manufacturers. And light-emitting 
diode (LED) printers, which print through the use of 
tiny semiconductors that emit light when energized by 
a pulse of current, are also manufactured. 

It's the laser printer, though, that most industry 
leaders look to as the printer of the future. Impeccable 
print quality and high-resolution graphics (generally 
300 dots per inch) are the laser printer's forte. But the 
prohibitively high cost of such printers — $3,000- 
$6,000 — has kept them almost exclusively in the busi- 
ness domain. Opinion is sharply divided as to whether 
they will ever play a major role in the consumer printer 
market, although some laser printers are already avail- 
able for less than $2,000. 

"I think it [the laser printer] will definitely be in 
the home of the future," says Star Micronics' Brian 
Kennedy. "Within about four years, you'll probably 
see them in the $500 price range, which would make 
them a consumer item. But I think there are other 
barriers to overcome before they're accepted in the 
consumer market, such as servicing. There's obviously 
some hesitancy on the part of people in general to 
approach lasers because they're not too sure from a 
servicing or maintenance standpoint what they're go- 
ing to get from a laser." 

Sal Sestito, national sales manager for Juki Office 
Machines, has a different viewpoint. "There's no con- 
sumer I can think of who needs a laser printer, either 
now or in the next ten years," he says. "I just don't see 
the technology of laser printers developing that fast 
and the price coming down that quickly to make it 
worthwhile. There's so much software for 9-pin and 
daisywheel printers — it would involve so much change 
that it's just not going to happen for a lot of years," 




The Star Micronics NB-15 offers letlcr-quaiity printing at 100 
cps and high-speed draft at 300 cps. In addition, the printer 
has a 15-inch-ivide carriage a?id a 16K buffer. The NB-IS also 
features two slots for plug-in font cartridges, providing access 
to a wide range of character sets. 



A Significant Impact 

So for now, 24-pin printhead printers are carving an 
interesting niche in both the business and consumer 
markets, one that's only beginning to make a signifi- 
cant impact. "The 24-pin printers are starting to gain 
percentage in the overall share of the printer market 
[units sold]," says Epson's Dennis Cox. 

"There's still a significant price difference between 
high-end 24-pin dot-matrix printers and entry-level 
low-cost laser printers," he says. "The lowest-priced 
laser is around $2,000, with the highest-end dot-matrix 
a little higher, and you're talking about different levels 
of functionality here." 

"I think in the next year or so, 24-pins are going to 
steal the high-end 9-pin market away," says Kennedy. 
"Within the next five j'ears, you're going to see the 
whole [impact] printer industry dominated by 24- 
pins." 

Opinions are likely to remain divided over the 
future of the laser printer in the consumer marketplace. 
But what is no longer being debated is the remarkable 
performance of the latest wave of dot-matrix printers. 



^^r T < 


/ 




MJ m^ 


^r ■■ " 






» . • "- .'T'v^S^ '•"; : 



i^^^SS^lMMk 



The LQ-800 and wide carriage lQ-1000 dot-matrix printers from Epson print drafts at 180 cps and business documents in let- 
ter-quality mode at 60 cps. These high-resolution 24-pin printers feature option cartridges that support extended Epson control 
codes or emulate IBM or Diablo 630 printers. 



36 COMPUTE) March 1987 



Consumer 

Printer Outlook 

For 1987 

The following list reveals some of the diversity and 
the overlapping price ranges for the major com- 
puter printer categories in the consumer market, 
based on interviews with printer manufacturers. 
Price ranges are approximate. 

Laser Printers ($1,800~$6,000): Too early to pre- 
dict consumer acceptance because of high price, 
lack of color capability, and perceived service 
problems. Opinion is divided as to whether there 
will ever be consumer need. The best projected 
application for 1987 is as a page printer for desktop 
publishing and other business needs. Prices will 
have to fall well below $1,000 before laser printers 
have a major impact in the consumer market, 

High-End 24-Pin Printers ($1,000-$2,000): Good 
life expectancy for business use, but little consum- 
er potential because of the price. These printers are 
faster and offer higher quality than low-end 24-pin 
printers. But prices will start to collide with low- 
end laser printers within the next year. These high- 
end 24-pin printers may prove more popular for 
business use than low-end laser units because of 
better resolution, color capability, easy operation, 
and more flexibility. 

Low-End 24-Pin Printers ($600-$l,200): Good 
life expectancy for both business and consumer 
applications. These printers can be expected to 
have an impact in the consumer market because of 
decreasing prices, letter-quality print, speed, excel- 
lent graphics reproduction, and some color 
capabilities, 

High-End 9-Pin Printers ($500-$l,000): A possi- 
bility that these will be phased out over the next 
year, or their prices will drop significantly. The 
prices are beginning to overlap with those of low- 
end 24-pin printers which offer more features and 
better quality, 

Low-End 9-Pin Printers {$200-$600): These 
printers are expected to maintain a strong presence 
in the consumer market for the foreseeable future 
because of the low price, near-letter-quality capa- 
bilities, and capacity to print graphics. The popu- 
larity of low-cost IBM PC clones may also help to 
increase their sales in 1987. 

Daisywheel Printers ($250-$l,400): Opinions on 
the future of daisywheel printers are mixed. Some 
manufacturers believe daisywheel printers, if inex- 
pensive enough, may maintain a share of the 
business and consumer markets where color and 
graphics aren't necessary. Others predict that low- 
end 24-pin dot-matrix printers will push them out 
of the market in the next year or so. @ 



The 
BIG 




Advances In 
Screen Display 

Selby Botemon, Features Editor 



Perhaps you're used to staring at the 64,000 picture 
elements, or pixels, that make up a Commodore 64 
screen, or the 53,376 pixels on an Apple II screen. Or, 
maybe you're more familiar with the 174,104 pixels on 
a Macintosh or the 256,000 pixels in the high-resolu- 
tion monochrome mode of the Atari ST or the normal- 
mode high resolution of the Amiga, 

Whatever your computer, you're accustomed by 
now to its screen resolution, its sharpness, which is 
based in large part on the number of pixels that can be 
crowded onto the screen. The Commodore 64, for 
example, has a maximum screen resolution of 320 
pixels high by 200 pixels wide— hence the total of 
64,000. The Macintosh's monochrome display is 512 
X 342, the Apple II series is 278 X 192, and the ST and 
Amiga computers have 640 X 400 capabilities. Al- 
though video displays depend on other factors besides 
pixels to determine the final output, it's the tiny pixel 
itself which has the most to do with what you see. 

Now, however, new video display monitors are 
being produced that can put almost two million pixels 
on the screen at a time. Monochrome displays with 

March 1987 COMPUTEI 37 



resolutions of 1664 X 1200 are now being offered, 
opening up a wide range of new possibilities for com- 
puter users. 

"From the old days of computers, the 24 lines X 
80 columns-displays represent a mature and extremely 
inexpensive technology," says Steve Gibson, president 
of Gibson Research, and a pioneer in computer display 
technology. "We've seen a direct.. .translation of that 
technology into our homes and personal computers. 
But the ultimate destiny is to very high resolution, 
large screens — and I mean for everyone. 

"In the future, all computer screens will look like 
big-screen Macintoshes," he says. "When you see that 
much information on your screen, you get a better feel 
for it." 

The first examples of large screen, high-resolution 
graphics are occurring in the burgeoning field of desk- 
top publishing. Monitor manufacturers are building 
screen display devices that can present the user with 
screens of what-you-see-is-what-you-get pages, 
whether they're from a book, a newsletter, a pamphlet, 
or even a newspaper. 

Complete Vision 

When you can display 1200 lines of information with 
more than 1660 dots per line on one screen, amazing 
things begin to happen. Rather than looking at stair- 
stepped, blocky, diagonal lines, suddenly you can see 
shaded, perfecdy straight diagonals. Digitized pictures 
can seem almost as real as those on your television set. 
And most importantly, you can manipulate entire 
pages of information while seeing the big picture — the 
overall Impact on what is going to be printed out. 

These new display monitors are expensive — any- 
where from $600 to $2,000, depending on the size and 
quality of the units. But, Gibson points out, prices will 
begin to fall just as they have for computers and other 
electronics equipment. 

"The price is the determiner. If they were inexpen- 
sive now, everyone would have them," he says. "That 
will happen first in desktop publishing within large 
corporations, where they really have a need for that 
kind of a screen. Then it will slowly migrate downward 
as economies of scale bring the price down lower." 

Sigma Designs of Fremont, California, recently 
introduced its LaserView Display System for use with 
PC, XT, and AT computers. Aimed at the desktop 
publishing and computer-aided-design markets, Laser- 
View consists of a high-resolution adapter board and a 
choice of a 15-inch ($1,895) or a 19-inch ($2,395) 
monochrome monitor. They display 150 and 110 dots 
per inch, respectively, which, when combined with 
four shades of gray, provides an effective perceived 
resolution close to the 300 dots per inch available from 
most current laser printers. 

"This is the first time that close to two million 
pixels can be brought to the desktop publishing world, 
a resolution equivalent to 8 times that of an EGA 
(IBM's Extended Graphics Adapter) display and 11 
times that of a Macintosh screen," says Thinh Tran, 
president of Sigma Designs. 

Princeton Graphic Systems of Princeton, New 
Jersey, has just introduced its LM-300 high-resolution 
display. The $750 unit, which is compatible with the 

36 COMPUni March 1987 




The LM-300 high-resolution monitor from Princeton Graphic 
Systems is one of a new breed of display devices capable of 
putting almost two million pixels on a computer screen. 



PC, XT, AT, and compatibles, offers 1200 lines by 1664 
dots-per-line resolution on a 15-inch display. The LM- 
300 also emulates 300 dots per inch. 

One of the problems that designers of these new 
display devices are battling is simple human physiolo- 
gy — what Gibson calls the flicker threshold. If the 
screen, which is constantly redrawn — or refreshed — 
with a beam of electrons, is refreshed less than 60 times 
a second, the human eye picks up the flickering of the 
constant redrawing. 

"It turns out that 60 cycles per second is around 
that threshold," says Gibson. "For example, we don't 
see flicker in a fluorescent light, even though it's really 
off half the time and on half the time. But [on the new 
hi-res display devices], in order to get the kind of 
resolution for realtime displays, you have to put out 
phenomenally fast data to paint incredibly more scan- 
lines that are also crammed with more individual 
pixels." 

Gibson believes that as more and more pixels are 
placed in displays, the old CRT (cathode ray tube) 
technology still being used may give way to new high- 
contrast liquid crystal displays (LCD) or similar tech- 
nologies now under development. While most of us 
may not be buying the new high-resolution displays 
for a few years — at least until the prices come down 
significantly — it seems inevitable that their advantages 
will soon force them in the direction of all computer 



users. 



From the publishers of COMPUTE! 




March 1987 
COMPUTE! Disk 



All the exciting programs from the past three issues of COMPUTE! are on 
one timesaving, error-free, floppy disk that is ready to load on your Atari 
400/800, XL, and XE. The March 1987 'COMPUTE! Disk contains the enter- 
taining and useful Atari programs from the January, February, and March 
1987 issues of COMPUTE!. 

The March 1987 COMPUTE! Disk costs $12.95 plus $2.00 shipping and 
handling and is available only from COMPUTE! Publications. 

For added savings and convenience, you may also subscribe to the COM- 
PUTE! Disk. At a cost of only $39.95 a year (a $12.00 savings), you'll receive 
four disks, one every three months. Each disk will contain all the programs 
for your machine from the previous three issues of COMPUTE!. To order a 
subscription, call toll free 800-247-5470 (in lA 800-532-1272]. 

This is an excellent v^ay to build your software library while you enjoy the 
quality programs from COMPUTE!. 

Disks and subscriptions are available for Apple, Atari, Commodore 64 and 
128, and IBM personal computers. Call for details. 

For more information or to order individual issues of the March 1987 
COMPUTE! Disk, call toll free 1-800-346-6767 (in NY 212-887-8525) or 
write COMPUTE! Disk, P.O. Box 5038, F.D.R. Station, New York, NY 10150. 



COMPUTEl~ Publicationsjnc.® 

Port 01 ABC Consumer Mooazinos, inc ^^ffr 

One of the ABC Publishing Componies 

B2S 7th Avenue. 6th Floor, New York. NV 10019 

PuMshen ol COMPUtEl, COf^UIErs GaieftB, COIvlPtlTEI's Goiette Disk. COMPUTEI Books 

COWPUIEn Apple AopJications. ond COMPUtEl! Atotl ST Disk a t»laoaiinB. 



A Buyer's Guide 
To Printers 



There are many good computer printers 
available this year for a variety of appli- 
cations, Whatever your computer, 
chances are good that you'll find a 
printer listed below that will more than 
meet your needs. 

To help you gather the information 
you'll need to make the best buying 
decision, we've gathered information on 
printers in the under-$800 price range 
and listed some of the most important 
features in the following chart. New 
printers are being introduced continual- 
ly from major manufacturers, so it's pos- 
sible that a few of the newest printers 
will not appear in our buyer's guide. 

Here's a brief explanation of the 
major categories on the chart; 

Compatibility. Chances are your 

computer has either a serial or parallel 
port (or both) that hooks up to a printer. 
Some printers come in either serial or 
parallel versions; some offer both inter- 
faces; and some are available in parallel 
or serial only. If the printer you want 
comes only in a version that doesn't 
support your computer, you should be 
able to buy a separate interface that 
allows that configuration. Also, many 
printer manufacturers sell interfaces de- 
signed specifically for certain computers, 
avoiding any compatibility problems. 

Be careful here. In some situations, 
a particular interface will let you print 
text, but will be incapable of producing 
graphics. If there's any doubt, it's best 
to try and test your setup at a computer 
dealer. 

Print technology. This refers to 
how characters and graphics are actual- 
ly transferred from printer to paper. 
There are three types in this price 
range: impact, thermal, and ink-jet. 

Impact printers form characters by 
striking the paper through an inked 
ribbon, either with a daisytoheel (a small 
wheel whose spokes have letters and 
numbers on their tips), or with a print- 
head containing a column of tiny wires 
or pins that form characters and graph- 
ics (dot-matrix). Thermal printers use 
either a column of hot pads that change 
the color of heat-sensitive paper, or a 
column of tiny spark plugs that evapo- 
rate a special aluminum coating onto 
the paper, exposing an underlying dark 



surface. Thermal printers require spe- 
cial paper, which often costs more than 
regular paper and has a shorter life. 
Thermal transfer printers work with any 
kind of paper because they use ribbons; 
heat from the printhead melts a waxlike 
ink onto the paper. Ink-jet printers spray 
ink onto the paper through tiny holes. 

Speed. How fast does the printer 
operate? This can vary if the printer 
offers different modes. Draft mode is 
usually the fastest, but produces rough- 
er, fainter type. Near letter quality 
(NLQ), or correspondence mode, takes 
longer to print, but looks more pol- 
ished. Some printer speeds vary de- 
pending on the type of font (for 
example, pica or elite) used. In our 
chart, a wide speed range, like 30-120 
characters per second (cps), indicates 
that the printer offers some kind of 
correspondence-quality type. 

Pitch. This indicates how many 
characters fit on a line, measured in 
characters per inch (cpi) or characters 
per line (cpl). The pitch range for a 
printer often varies greatly, especially if 
it is capable of printing several types of 
fonts. 

Buffer. A buffer is an area of mem- 
ory in a printer that can store a fixed 
amount of text while the printer is 
working, freeing up the computer for 
other tasks. Most printers in the under- 
$800 price range still have rather small 
buffers, so if you'll be doing many long 
printing jobs, you may want to consider 
buying an add-on buffer. 

Feed type. Friction-feed printers 
grip the paper and move it around the 
platen much as a typewriter does, while 
tractor-feed printers have teeth at both 
ends of the platen that grab holes at the 
edges of continuous-feed paper. Many 
printers have optional tractors. 

Suggested retail price. This is the 
price set by the manufacturer; you may 
well find it at a lower price if you shop 
around. 

A full explanation of the graphics 
capabilities of each printer takes more 
space than we have available. If you 
plan to use your printer extensively for 
printing graphics, make sure it's capable 
of doing what you need before you buy. 



For more information on any of the 
printers listed in the following chart, 
please contact: 

Alphacom 

2108 Bering Dr., Unit C 

San }ose, CA 95131 

Alps America 
3553 N. 1st St. 
San Jose, CA 95134 

Apple Computer 
Customer Relations Department 
20525 Mariani Ave. 
Cupertino, CA 95014 

Aprotek 

1071 -A Avenida Acaso 

Camarillo, CA 93010 

Axonix 

417 Wakara Way 

Salt lake City, UT 84108 

Blue Chip Electronics 
2 W, Alameda Dr. 
Tempe, AZ 85282 

Brother International 
8 Corporate PI. 
Piscataway. NJ 08854 

C. Itoh Digital Products 
19750 S. Vermont Ave. 
Suite 220 

Torrance, CA 90502 

CAL-ABCO 
6041 Variel Ave. 
Woodland Hill, CA 91367 

Canon USA 

System Division 
One Canon Plaza 
Lake Success, NY 11042 

Centronics Data Computer 
1 Wall St. 
Hudson, NH 03051 

Citizen America 

2425 Colorado Ave. #300 

Santa Monica. CA 90404 

Commodore Business Machines 

1200 Wilson Dr. 

West Chester, PA 19380 

Dataproducts 
6200 Canoga Ave. 
Woodland Hills, CA 91365 

Dynax 

6070 Rickenbacker Rd. 

Commerce, CA 90040 

Edwards-CPE 

Manufacturers of Axiom Printers 

1014 Criswold Ave. 

San Fernando, CA 91340 



Continued on page 45. 



40 COMPOTEI March 1987 






~: "^ "^ 

2 o o 

ill 






S n. 
,11 



si s 



- 



S 



% 



k g 



■a g. : 






.iE.: 



a.f- 



t 



■^ 



SO 



o 
(J 

< 



q 

z 



March 1987 COMPUTEl <11 






& 
s 






f'l -^ -c 



an. 



-ig- 



P S -2 



£l 






^ 



if 



S5 



uS 



E 

IV 

2 



42 COMPUTEI March 1 987 



!l 






H^ 



£8 



.^1 



E "S 



B-2 



•S 

s 

I 



C1.0 



•r t7 ( 



, J. S. 



= 11 ■■ 



O.! 



en 



! Elf 

! C 14 



si 

a — 

S c 

< " 

G £■- 

Sou 

E. U £- 






c S. 






u ■ - 

a..t: s 

■E :£ £ t^ — 

H MS - 

2 i; I -s -5 

^ *u ej -H 
I c ^ 



5 & 



i S. 






s:2 



March 1967 COMPUTEI 43 









= .5 

o j: 



Ss 






■3 P 






2.S 









".I 



Q. 'J 

85 






£i: 



i 



1 



11 

B.(- 



2 o 



SD 



K 

^ € 



c 


■p 










e-S 


fc 






qS 


Q 



s &* 



:c 't 



o o 






OS £. ! 

-J. <J ' 






s : 



in 



44 COMPUTE! March 1987 



t 



I 



^ 



1 = 



So 



in C5 



■a. c 

II 



a "2 



2 n 

I E 



I 



Epson America 
2il5 Kashiiua St. 
Torrance, CA 90505 

Facit 

9 Executive Park Dr. 
P.O. Box 334 
Merrimack, NH 03054 

Fujitsu America 
3055 Orchard Dr. 
San lose, CA 95134 

General Electric 
Electronics Park 
Syracuse, NY 13221 

Hattori Seiko Computer Peripherals 
nil Macarthur Blvd. 
Mahwab, NJ 07430 

Hewlett-Packard 
Personal Computer Group 
10520 Ridgeview Ct. 
Cupertino, CA 95014 

Mannesmann Tally 
8301 S. ISOIh St. 
Kent, WA 98032 

NEC Information Systems 
1414 Massachusetts Ave. 
Boxborough, MA 01719 

Okidata 

532 Fellowship Rd. 

Mt. Laurel, NJ 08054 

Panasonic 

Computer Products Division 
One Panasonic Way 
Secaucus, N/ 07094 

Ricoh America 

5 Dedrick PI. 

West Caldwell, N} 07006 

Silver-Reed America 
19600 S. Vermont Ave. 
Torrance, CA 90502 

Star Micronics Peripheral Division 

200 Park Ave. 

Suite 2309 

Pan Am Bldg. 

New York, NY 10166 

Swintec 

320 W, Commercial Ave. 
P.O. Box 356 
Moonachie, NJ 07074 

TAB Products 
1400 Page Mill Rd. 
Palo Alio, CA 94304 

Tandy/Radio Shack 
1800 One Tandy Center 
Fort Worth, TX 76102 

Toshiba American 
Information Systems Division 
2441 Michelle Dr. 
Tustin, CA 92680 

Weigh-Tronix 
1000 N. Armstrong 
Fairmont, MN 56031 

Xerox/Diablo 
901 Page Ave. 
P.O. Box 5030 
Fremont, CA 94537 



I 



L.. 



March 1967 COMPUTEI 45 



Here's a finely detailed implementa- 
tion of the popular card game of Eu- 
chre. The author originally wrote the 
program in Pascal on an IBM PC. He 
then translated the Pascal program to 
BASIC for the Commodore 64. We've 
supplied new BASIC translations for 
the Amiga, Apple II series, IBM 
PC/PCjr, and Atari 400, 800, XL, and 
XE. The IBM PC/PCjr version re- 
quires BASJCA and a color / graphics 
adapter for the PC or cartridge BASIC 
for the PCjr. The Atari program re- 
quires a joystick. A joystick is optional 
for the Commodore 64 version. 

"Euchre" is a four-handed transla- 
tion of the popular card game of the 
same name. In this version, you 
play with a computer partner 
against two computer opponents. 
The computer will deal the cards, 
keep score, and play your partner's 
as well as your opponents' hands. 
Even better, it never gets bored or 
commits blunders such as trumping 
your ace. Nearly all the subtleties of 
the original card game are repro- 
duced faithfully, including lone 
hands, short suits, and more. You 
can even choose different personal- 
ities for your partner and oppo- 
nents. Type in the program for your 
computer and read the special- 
application notes before you run it. 

Computer Personalities 

The game begins by asking you to 
choose personalities for your part- 
ner and your opponents. Move the 
reverse-video cursor to your 
choices, and make selections by 
pressing the joystick button or the 
Return key. 

The normal personality plays a 
more cautious game, while the ag- 
gressive personality tends to take 
more risks. Both opponents must 
have the same personality, but the 
partner's personality is chosen sep- 
arately. This makes the game much 



Euchre 



David Shimoda 



more varied than if the computer 
players always stick to the same, 
predictable strategy. One of the 
more difficult combinations is to 
choose a normal partner and ag- 
gressive opponents. Of course, your 
own style of play will have an im- 
pact on which combination you 
prefer. 

Dealing And Trump 

This Euchre variation uses only 24 
cards from the standard 52-card 
deck. Each suit includes only the 9, 
10, jack, queen, king, and ace. (The 
ace is high.) Before actual play be- 
gins, the first dealer must be select- 
ed. This is done by dealing out 
cards until a black jack is thrown. 
The first person who receives a 
black jack becomes the first dealer. 
After each hand, the position of 
dealer passes to the next player in 
clockwise order. 

The dealer deals out 5 cards to 
each player and then places 1 card, 
face up, on the center of the table. 
The program automatically deals 
the cards, as it handles many other 
details in this game. As a conse- 
quence of this scheme, only 21 of 
the 24 cards are in play for any 
given hand. (Three cards are al- 
ways left unplayed.) 

The next step is to choose 
trump; the trump suit is the most 
powerful of the four suits for the 
current hand. Trump is determined 
by moving around the table in 
clockwise order, giving each player 
an opportunity to choose whether 
the dealer should pick up the center 
card. Each player can either pass or 
order up — order the dealer to pick 
up the center card. When the dealer 
is forced to take the center card, that 
card's suit becomes trump, and the 
dealer discards one card. The com- 
puter players, of course, decide for 
themselves whether to pass or or- 
der up in this phase of the game. 



J 

>> 
J 




.0 

V 

10 


10 



E3H 




"Euchre" for Atari 400, 800, XL, 
and XE computers. 







"Euchre" for the Commodore 64 
(and 128 in 64 mode) reproduces the 
subtleties of the familiar card game. 




"Euchre" for the Amiga uses fine 

color scaling on a 32-color screen to 
dress up the playing field. 

If no player chooses to order 
up in the first circuit of the table, 
each player then has a chance to 
pick any other suit as trump. If no 
player chooses trump on the second 
circuit, the hand is thrown out com- 
pletely, and another is dealt. 



46 COMPUTEI March 1987 



Lone Hands 

On certain occasions, a player may 
choose to exclude his partner from 
play, a tactic which is known as 
playing lonehand. The player who 
chooses trump must choose at the 
same time whether or not to play 
lonehand. If a player orders up a 
card into his partner's hand, the 
player who ordered up must play 
lonehand, {If your partner is the 
dealer and you order up, you must 
play lonehand). 

For instance, you might want 
to play lonehand in a case where 
you hold most of the high cards in a 
suit, and your partner is the dealer, 
and the center card is a high card of 
your strong suit. By excluding your 
partner and playing lonehand, you 
are in a very strong position to take 
most or all of the tricks. 

Tricks And Hands 

A hand consists of five tricks. A 
trick consists of all players laying 
down one card. The player to the 
left of the dealer throws down the 
first card in the first trick. Subse- 
quent tricks are begun by the win- 
ner of the previous trick. Suit must 
be followed within a trick. That is, 
you must throw a card of the suit 
which was led, as long as you have 
any card of that suit. 

If no trump cards are thrown in 
a trick, the trick is won by the play- 
er who laid the highest card of the 
leading suit. If trump is thrown, 
then the highest trump card takes 
the trick. 

For all suits except the trump 
suit, the rank of the cards follows 
the usual order. (The 9 is low, and 
the ace is high.) For the trump suit, 
however, the jack is the highest- 
ranking card. The jack of the same 
color, but different suit, is consid- 
ered part of the trump suit — and it 
is the second highest ranking card. 
For example, if the trump suit is 
chosen as clubs, it follows this 
ranking: 

jack of clubs 
jack of spades 
ace of clubs 
king of clubs 
queen of clubs 
10 of clubs 
9 of clubs 

A hand is won by the side 
which wins a majority of tricks 
(three or more). If you or your part- 



ner orders up a card, your side must 
take the majority of tricks in that 
hand or else be euchred, meaning 
that the opposite side gets two extra 
points. 

Scoring 

A game of Euchre ends when one 
side accumulates ten or more 
points. You score one point for win- 
ning a hand, two points for winning 
all the tricks in a hand, and four 
points for winning all the tricks 
lonehand. 

Commodore 64 Version 

This version of Euchre (Program 1) 
can be played with either a joystick 
or the keyboard. To play with the 
keyboard, use the cursor keys to 
move the colored cursor, and press 
RETURN to make a selection. 

Atari Version 

The Atari version of Euchre (Pro- 
gram 2) runs on any Atari 400, 800, 
XL, or XE computer. It requires a 
joystick. Plug the joystick into port 
1 before you run the program. The 
suits are all the same color, so you 
must remember that hearts and dia- 
monds are red, while clubs and 
spades are black. 

Apple II Version 

Euchre for the Apple II runs on any 
computer in the Apple II series, un- 
der either ProDOS or DOS 3.3. The 
program consists of two files. The 
main program (Program 3) is writ- 
ten in Applesoft BASIC. It automat- 
ically loads a second file named 
EUCHRE, BIN which is used to create 
graphics. To create the EUCHRE- 
.BIN file, enter the data from Pro- 
gram 4 using "Apple MLX," the 
machine language entry program 
printed elsewhere in this issue. 
When you run MLX, youTl be 
asked for a starting address and an 
ending address for the data. Here 
are the addresses you need for the 
EUCHRE.BIN file: 

Starting address: 8CA8 
Ending address: 9 ICE 

For Program 3 to function properly, 
you must save the data from 
Program 4 with the filename 
EUCHRE.BIN. 

The game is played with key- 
board controls. Use the arrow keys 
and Return key to move the cursor 
and make selections. 



IBM PC/PCjr Version 

This version of Euchre (Program 5) 
requires color/graphics adapter 
hardware for the IBM PC and com- 
patibles, and BA5ICA for the PC, or 
Cartridge BASIC for the PCjr. Move 
the cursor with the cursor keys, and 
press Enter to make selections, 

Amiga Version 

Euchre for the Amiga (Program 6) 
requires 512K of memory, and is 
played with keyboard controls, ex- 
actly like the IBM PC game. 



For Instructions on entering ttiese programs, 
please refer to "COMPUTEI's Guide to Typing 
In Programs" elsewtiere in tt>is issue. 



Program 1 : Commodore 64 
Euchre 

SK 10 GOSUB1100:GOSUB1000:GOSU 
B2700:GOSUB1300:GOSUB100 
00 

SG 25 GOSUB2000 

ms 30 iftpo4then70 
qj 35 pokex,12:pakey,30:sysplt 
iprint"{blk1ho{2 spaces} 

BIDS"; 
XQ 40 P0KEX,13:P0KEY,28:SYSPLT 

:PRIHT"HAND{2 SPACES3DUM 

PED"r 
XG 50 GOSUB1400:FORI=0TO4:POKE 

X, 19: POKEY, 1*5+2 iSYSPLT: 

PRINTEC$r :tIEXT 
XP 51 DL=FNNP(DL) :P0KEX,7:P0KE 

Y, 12 :SYSPLT:PRINTECS; 
DH 55 GOSUH1900:GOTO25 
FR 70 POKEX,12:POKEY,30jSYSPLT 

: PRINT "[BLKl TRUMP: "COS( 

TP)S5(TP) ? 
JJ 75 POKEX,13:POKEY,29:SYSPLT 

: PRINT "[BLKlBIDDER:"; :IF 

BD=0THENPRINT"YDU" r :GOTO 

90 
EF 80 PRINT" P"RIGHT5 (STR?(BD> 

,1); 

ES 90 PRINT" (BLU) "; :IFKU=0THEtJ 

135 
AX 100 IFDL>0THEN125 
KM 115 P0KEX,15:P0KEY,2B:SYSPL 

T: PRINT" {BLKlPICK DISCA 

RD"f 
FD 121 GOSUB2200:POKEX,15:POKE 

Y , 28 : SYSPLT : PRINT " ( ALU } 

{12 SPACES]"; :GOT01 30 
XH 125 GOSUB2300 
JK 130 C(DL,F)=KC:S(DL,F)=KS:G 

OSUB1220 
QJ 135 P0KEX,7: POKEY, 12: SYSPLT 

:PRINTEC$; 
MK 140 GOSUB2500:GOSUB3000:IF( 

PW(0)>9)OR(PW(1)>9)THEN 

300 
GS 150 P0KEX,21:P0KEY,31iSYSPL 

T:N=0:GOSUB146S 
MP 151 P0KEX,21:P0KEY,35:SYSPL 

T:N=0:GOSUB1465 
AG 200 POKEX,7:POKEY,31:SYSPLT 

:N=PW(0):GOSUB1465 
BS 205 POKEX, 7:P0KEY,35:SYSPLT 

sN=PW(l):GOSUB1465 
CD 210 DL=FNNP(DL) :GOSUB1355:G 

0T025 
MP 300 WT=0:IFPW(1)>-10THENWT= 

1 



March 1987 COMPUTE! 47 



PE 305 POKEX,7:POKEY,29+WT*6:S 

YSPLT:N=1 :GOSUB1465 
EQ 310 P0KEX,7 !POKEY,31+WT*6:S 
YSPLT:N=PW(WT}-10 :GOSUB 
146S 
KM 315 FORDE=1TO2000:NEXT 
EM 320 GOSUB1450:POKEX,13:POKE 
Y , 30 : SYSPLT : PRINT" ( RED ) 
YOU"; 
DE 321 IFWT=0THENPRINT" WINT'f 
PQ 322 IFWT=1THENPRI^FT" LOSE"; 
PJ 325 P0KEX,15:P0KEY,ll!SYSPL 
T: PRINT" {RVSJ ( BLU ) PLAY 
( SPACE J AGAIN? (OFF)",- 
BA 330 LO=ll:HI=12:XP=15:YP=23 

:GOSUB1910 
HG 340 IFAN=11THENRUN 
AB 350 PRINT" [CLR] " ; 
GG 999 END 
JH 1000 POKE53281, 15:POKE532a0 

,6;REM SETSCR 
AR 1005 PRINT"iCLR} |BLU)"r 
CE 1010 F0RI=1T024; PRINT "(RVSj 
(28 SPACES} (OFF} 
(12 SPACES}"; :NEXT 
Ffl 1015 PRINT" (RVSj (28 SPACES) 

(OFF) (HOME}"; 
AC 1020 PRINTSPC(28)"(BLU)^AiC 

CCCCCCCCC ESj"; 
SG 102 5 PRINTSPC(2a)"B(RED} 
(2 SPACES) EUCHRE 
(2 SPACES) (BLU)B"; 
(32 SPACES) 
DD 1030 PRINTSPC ( 28 ) " 8 Zj CCCCCC 

CCCC jXg"; 
XF 1031 PRINTSPC(28)"(RVS) 

(12 spaces]"; 
XB 1032 PRINTSPC (28)" 

(3 SPACES) POINTS 
(3 SPACES) (off)"; 
CD 1035 PRINTSPC(28)"{REDS YOU 
(BLU)EM^SG3{RED)C0MP 
(SPACE)"? 
SB 1040 PRINTSPC(28)"(BLU) 

E5 YiPOBS Yl"; 
GR 1045 F0RI=1T04!PRINTSPC(28) 
" (5 SPACES)gMiSGi 
(5 SPACES}"; :NEXT 
KQ 1050 PRINTSPC(28)"|12 Y3 

( 5 DOWN ) " ; 
AJ 1051 PRINTSPC(28)"il2 ^3"; 
CP 1055 PRINTSPC(2a)"[RVS} 
(3 SPACES jTRICKS 
(3 SPACES} (OFF)"; 
AC 1060 PRINTSPC(28)"(RED} YOU 
(BLU] BM^iGg ( RED)C0MP 
(space)"; 
KE 1065 PRINTSPC(28) " (BLU) 

|5 YiP0§5 Yi"; 
HR 1070 F0RI=1T03 :PRINTSPC{28) 
"(5 SPACES) |M|EG3 
(5 SPACES)"; :NEXT 
DM 1075 PRINTSPC(28) " 

(5 spaces)Sh3Eg3 

(4 SPACES)"; 
ER 1080 POKE2023, 32:P0KE56295, 

6 
XS 1081 P0KEX,7:P0KEY,31 rSYSPL 

T : G0SUB1465 : POKEX, 7 : PO 

KEY, 35 :SYSPLT:GOSUB146 

5 
SB 1062 P0KEX,21 :PQKEY,31iSYSP 

LT:GOSUB146 5:POKEX,21: 

POKEY, 35 rSYSPLTiGOSUBl 

46 5 
QE 1090 RETURN 
SS 1100 DIM C1S(7),C2$(7),S?(3 

),DC(23),DS(23),C(3,4) 

,S(3,4),C0?(3),CX(3),C 

Y(3) 
MS 1101 DIM OB(6),OU(6),PU(6), 

MS(6,3),GA(6),ME$(15), 

PX(3),PY(3),NM5(9,2),N 

F(6) 



SS 1102 DIM CL(7,3) 

QS 1108 X»RND(-TI} 

GQ 1109 FORI=0TO3:READS?(I) ,CD 

? ( I ) : NEXT 
EF 1110 DATA"Z", "(RED)", "X", " 

(BLK}","S", "(RED)", "A" 

,"(BLK)" 
PE 1111 FORIb0TO6:READNF(I) :NE 

XT:DATA4,0,1,2,3,4,0 
JH 1115 FORI=0TO7:READC1?(I),C 

2${I) :NEXT 
GG 1120 DATA"9 "," 9", "10", "10 

", "J "," J", "Q "," Q" , 

"K "," K","A "," A" 
XJ 1125 DATA"J "," J", "J "," J 

JS 1130 F0RI=251T0254:READQ:P0 

KEI,Q:NEXT 
RK 1135 DATA24,76,240,255 
EH 1140 PLT=251:X=781:Y=782:SX 

=53248:BL5=" 

[12 SPACES)" 
GQ 1145 EC5="(4 SPACES )( DOWN ) 

14 LEFT3"!EC?="{RVS)"+ 

ECS+ECS+EC$+EC?+EC$+" 

(OFF)" 
KS 1150 FORJ=0TO3:FORI=0TO5 
AP 1155 DC{J*6+I)=I:DS(J*6+I)= 

J 
RF 1160 NEXTIsNEXTJ 
EK 1161 FORI=0TO3:READPX{I) ,PY 

(I) :NEXT:DATA13, 12,7,7 

,1,12,7,17 
PD 1165 FORI=0TO3:READCX(I),CY 

(I) jNEXT 
CF 1170 DATA17,11,10,4,3,11,10 

,21 
SQ 1171 FORI=0TO2 :FORJ=0TO9:RE 

ADNM? C J , I) : NEXT : NEXT 
BR 1172 DATA"(RVS) iFi","{RVS} 

iKg(OFF)iKi", "(RVS)Bli 

","(RVS)Ei3 ","§2 k3" 

,"(RVS) Eli","SRVS} 
i I 3 " , " { RVS ) 8 I 3 " , " 
(RVS) iF3", " (RVS)EDi " 
BX 1173 DATA" EKi","(RVS)iK| 
[0FF}iK3"," El|","Bl3 
[SPACE)", "(RVS)E2 Ci" , 
"ill "," !Fi","(OFFl 

(RVS) "," 8Fi","Eci " 

DH 1174 DATA" ( RVS ) BVi " , " ( RVS ) 
§K3(0FF)gKr'," (OFF) 
6l3","lOFF)El§(RVSj ", 
"(OFF) gKa","(OFF}Bli 
(RVS) "," gV3","(0FF} 
(SPACE) [RVS I "," BVT', 
"(0FFlgl3(RVS) " 
EA 1175 DEF FNNP(X ) = ( (X+1 )/4-I 

NT((X+l)/4))*4 
HH 1176 FORI=0TO5 :READCP(I ) :NE 

XT:DATA1, 1,8, 1,2,-1 
QA 1177 FORI=0TO13:README$Cl) : 

NEXT 
XX 1178 DATA" PASS (4 SPACES)"," 
ORDER UP", "PASS 
[3 SPACES)", "PICK UP", 
"(2 SPACES) PASS 
[4 SPACES)" 
EH 1179 DATA"Z DIAMONDS", "X CL 
UBS (3 SPACES}", "S HEAR 
TS(2 SPACES)", "A SPADE 
S(2 SPACES)", "NORMAL 
[4 SPACES)" 
HH 1130 DATA"AGGRESSIVE", "YES" 

, "NO ","YES" 
JD 1185 F0RI=lTO3:READMX(l),MY 
(I) tNEXT!DATA7,2,l,10, 
7,19 
BQ 1186 FORI=0TO6!READOB(I),OU 
(I ) , PU (I ) , MS (I , ) , MS ( I 
, 1 ) , MS ( 1 , 2 ) , MS ( 1 , 3 ) , GA 
(I) sNEXT 
FF 1187 DATA99,99,99,99,99,99, 
99,99 



AF 1188 

JX 1189 

FO 1190 

CK 1191 

ES 1192 

AK 1193 

XX 1199 

ER 1200 

C!l 1205 



XQ 1207 

JM 1210 

AK 1220 

AB 1225 

CQ 1230 

XH 1250 

HA 1255 

XQ 1260 

HC 1265 

DE 1270 

AG 127 5 

CA 1280 

SD 1300 

DF 1305 

EX 1310 

GB 1315 

XD 1320 

SD 1325 

EP 1330 

PQ 1331 

MH 1335 

JC 1336 

RC 1337 

MS 1340 

JK 1355 



RM 1356 
HH 1360 
RE 1362 

AG 1365 
KX 1370 

PR 1375 
EB 1376 

JG 1380 
JH 1400 

EE 140 5 



RR 1410 



DATA99,99,99,99,99,99, 

99,99 

DATA99,99, 14, 14, 14,13, 

13,99 

DATA20,12,08,08,08,08, 

07,19 

DATA14 , 00 , 00 , 00 , 00 , 00 , 

00,16 

DATA00 , 00 , 00, 00 , 00 , 00 , 

00,14 

DATA03 , 00 , 00 , 00 , 00 , 00 , 

00,00 

RETURN 

IF(S=TP)AND(C=6)THENS= 

S+2:S=(S/4-INT(S/4) )*4 

PRINTC05(S)C1$(C)" 

(2 SPACES }( DOWN ) 

(4 LEFT)"S$(S)" 

(3 SPACES) (down) 

(4 LEFT) [4 SPACES} 

(DOWN) (4 LEFT) 

(3 SPACES) "SS(S)" 

[ DOWN ) { 4 LEFT ] 

(2 SPACES) "C25(C); 

PRINT" (BLU)"; 

RETURN 

FORU=0TO4 : POKEX , 19 : POK 

EY,U*5+2;SYSPLT 

C=C(0,U} :S=S(0,U) :GOSU 

B1200:NEXTU 

RETURN 

FORI=0TO23 : J=INT ( RND ( 1 

)*24) 

T=DC(I) :DC(I)=DC(J) : DC 

(J)=T 

T=DS(I) :DS(I)-DS(J) : DS 

(J)=T 

NEXT 

FORJ=0TO3 :FORI=0TO4 

C(J,I)=DC(J*5+I):S(J,I 

)=DS(J*5+I) :NEXT:NEXT: 

KC=DC(20):KS=DS(20) 

RETURN 

GOSUB1450 : POKEX , 12 : POK 

EY,28!SYSPLT 

PRINT" (BLK)FIRST 

(2 SPACES) BLACK"; 

POKEX ,13: POKEY , 29 : SYSP 

LT 

PRINT "JACK DEALS"; 

GOSUB1250:DL=0:CC=i0 

POKEX , CX ( DL) : POKEY , CY ( 

DL) iSYSPLT 

C=DC(CC) :S=DSCCC) :GOSU 

B12D0 

forde=1to500 :next 
ifCdc(cc)=2)and( (DS(CC 
)and253 )=1 )thengqt0135 

5 

POKEX, CX(DL) !P0KEY,CY( 

DL) :SYSPLT 

FORDE=lTOi00 jNEXT 

PRINTEC5; ;CC=CC+1 : DL=F 

NNP(DL)!G0T01325 

GOSUB1450 : PRINT " t BLK ) " 

f !POKEX,12:POKEY,29:SY 

SPLT 

IFDL=0THEN1370 

PRINT" PLAYER "DL; 

POKEX, 13 :P0KEY, 31 iSYSP 

LT 

PRINT "DEALS"; :G0T0137 5 

PRINT"Y0UR(2 SPACES )DE 

AL"; 

GOSUB1400 

POKEX, CX(DL) :POKEY,CY( 

DL) :5YSPLT:PRINTEC?; 

RETURN 

POKEX ,15: POKEY , 28 : SYSP 

LT 

GOSUS6000! PRINT" (BLK) 

(RVS) HIT BUTTON (OFF) 

"; :POKE198,0 

GETWT9 : IF (WT$ <> CHR? ( 13 



48 COMPUTEI March 1987 



))AND(PEEK(56320)<>lil KE 1800 
)THEN1410 
DA 1415 PRINT" iBLU) "; :GOSUB145 AS 1801 

AQ 1805 
HP 1430 RETURN HD 1810 
EM 1450 FORR=12T016:POKEX,R:PO KA 1850 

KEY, 2a:SYSPLT 
JB 1455 PRINT'"{12 SPACES)"; :NE GQ 1855 

XT 
QR 1460 RETURN CS 1860 

AS 1465 PRINT" [RED) "? !FORI=0TO 

2:PRINTNMS(N,I)"(D0WN) rk 1865 

(2 LEFT)"; :NEXT:PRINT" KH 1870 

[OFF)SBLUi"r QH 1900 

DQ 1470 RETURN 
KE 1500 FORI=0TO3:SP{P,1)=FC(P 

AND253) !NS(P,I)=0:NEXT 
RM 1505 FORI=0TO4:S='S{P,I> :C=C pc 1905 

(P,I) :SP(P,S)=SP(P,S)+ 

CP(C) :NS{P,S)=NS(P,S)+ pj 1907 

1 ED 1910 
JH 1510 IFC=2THENS=S+2:S=(S/4- BD 1915 

INT(S/4) )*4:SP(P,S)=SP 
(P,S)+6:NS(P,S)=NS(P,S aj 1920 

)+l JC 1921 

XA 1515 IFC=5THENFORJ=0TO3iSP{ 

P,J)=SP(P,J)+4 :NEXT J 
QJ 1520 NEXTI JM 1922 

SE 1525 SS=0:FORI=0TO4:IFNS{P, hJ 1925 

I)=0THENSP(P,I)=0:SS=S 

S + 1 
BJ 1530 NEXT:FORI=0TO3:SP{P,I) BH 1930 

=SP{P,I)+SS;NEXT 
EC 1535 IFP<>DLTHENi550 
PX 1540 IFKC=5THENSP(P,KS)=SP{ RH 1935 

P,KS)+4 
PP 1545 SP(P,KS)=SP(P,KS)+CP(K PJ 1940 

C) :NS(P,KS)=NS(P,KS)+1 
ED 1550 RETURN GX 1945 

BM 1600 LO=0:HI=1:XP=13:YP=10: 

GOSUB1910 SB 1950 

RX 160 5 IF AN=1THENTP=KS 
CE 1610 RETURN SG 1955 

AB 1615 POKEX,13!POKEY,10:SYSP 

LT : PRINT" ( RVS ) LONEHAND 

?(OFF)"; HG 1960 

PJ 1616 LO=12:HI=13:XP=13:YP=2 

0:GOSUB1910:LH=0 
SA 1618 IFAN=13THENLH=liP0KEX, 

MX(BD)+2:P0KEY,MY(BD) : JK 1965 

SYSPLT: PRINT" (RVS) LONE FQ 2000 

HANDfOFF}"; 
Cfl 1619 POKEX,13:POKEY,10:SYSP 

LT: PRINT" (RVS) MK 200 5 

[9 SPACES) lOFFJ"; 
HH 1620 RETURN HX 2007 

SP 1625 LH=0!lFSP(P,TP)>GA(NS( 

P.TP) )THENLH=1 
JH 1630 RETURN BA 2010 

EX 1650 IFFNNP(FNNP(P) )=DLTHEN XS 2015 

G0SUB1625:F=LH;G0T016a 

5 BH 2016 

GE 1654 F=0sIFKC=2THENGOTO1660 RS 2017 
HP 1655 IFSP(P,KS)>OU(NS(P,KS) 

)THENF=1 RG 2020 

HS 1660 IFSP(P,KS)>OB(NS(P,KS) XA 2025 

)THENF=1 
AP 1665 IF(F=0)OR{P<>FNNP(DL) ) RH 2030 

THEN1685 
XJ 1670 SB=CP(KC) :IFKC=5THEHSB 

=3 FD 2035 

CX 1675 FORI=0TO3:IFI<>KSTHENI af 2040 

FSP(P,I)>=(SP(P,KS)-SB 
)THENF=0 KM 2045 

BR 1630 NEXT 

DX 1685 IFP=1THENTP=KS RM 2050 

XX 1699 RETURN 
SA 1700 LO=2:HI=3:XP=13:YP!=ll: PS 2055 

GOSUB1910 
QH 1705 IF AN=3THENTP=KS 
QM 1710 RETURN CQ 2060 

GG 1750 IFSP(P,KS)>PU(NS(P,KS} 

)THENTP=KS 
AB 1755 RETURN AJ 2065 



L0=4 : HI =8 : XP=1 3 : YP=9 : G 

OSUB1910 

IFAN-5=KSTHEN1800 

IFAN>4THENTP=AN-5 

RETURN 

DF=0 : FORI=0TO3 : IFI=KST 

HEN1865 

I FSP ( P , I) -MS ( NS ( P , I ) , P 

S)<DFTHEN1865 

DF=SP(P,I)-MS(NS(P,I), 

PS) jTP=I 

NEXT 

RETURN 

FORI=1TO3:FORJ=0TO2:PO 

KEX,MX{I)+J:POKEY,MY(I 

) : SYSPLT: PRINT" (RVS) 

{8 SPACES)"; 

NEXT : NEXT : P HINT ■■( OFF ) " 

RETURN 

POKE198,0:AN=LO 

X1=XP:Y1=YP:F0RI=L0T0H 

I: PRINT"! RVS) {BLU}"; 

IFIOANTHEN1925 

IF(AN=L0)0R(HI-L0=1)TH 

ENPRINT" (RED) "; :G0T019 

25 

PRINTC0?(I-L0-1) ; 

POKEX , XI : POKEY , Yl : SYSP 

LT : PRINTME? ( I ) ; :X1=X1+ 

1 :NEXT 

GETR$ : DR=PEEK( 563 20 ) : I 

FNOT( (R5=" EUPJ " )OR{DR= 

126))THENGOTO1940 

AN=AN-1 : IFAN<LOTHENAN= 

HI 

IFNOT( (RS-"(DOWN)")OR( 

DR=125) )THENGOTO1950 

AN=AN + 1 : IFAN>H-ITHENAN= 

LO 

IFNOT( (R$=CHRS(13))0R( 

DR=lll))THENGOT01915 

X1=XP:Y1=YP:PRINT" 

{RVS] [BLU)"; :FORI=LOTO 

HI 

POKEX , XI : POKEY , Yl : SYSP 

LT:PRINTLEFT?(BL|,LEN( 

ME?(LO) )) : :X1=X1+1:NEX 

T 

PRINT" (OFF)"; : RETURN 

GOSUB1250:GOSUB12 20:P= 

FNNP(DL) :TP=4:BD=0:KU= 



POKEX, 7; POKEY, 12:SYSPL 

T:C=KC:S=KS:GOSUB1200 

IFDLO0THENPOKEX , MX ( DL 

):P0KEY,MY(DL)+1:SYSPL 

T:PRINT" (RVS) DEALER" 

GOSUB1500 

IFP=0THENGOSUB1600 :GOT 

02040 

IFABS(P-DL)<>2THEN2020 

GOSUB1625 :IFLH=1THENTP 

=KS:GOTO2025 

GOSUB1650 

POKEX, MX(P) : POKEY, MY (P 

) :SYSPLT: PRINT" [ RVS ) " ; 

IFTP=4THENPRINT" 

(2 SPACES } PASS ":GOTO20 

40 

BD=P: PRINT "ORDER UP"; 

P=FNNP(P) tIF(P<>DL)AND 

(TP=4)THEN2010 

P=DL:GOSUB1500!lFTP<>4 

THEN2105 

IFDL=0THENGOSUB1700:GO 

TO2070 

GOSUB1750! POKEX, MX{DL) 

:POKEY,HY{DL) :SYSPLT:P 

RINT"(RVS)(BLU)"; 

IFTP=4THENPHINT" TURNE 

D(D0WN)[5 LEFT)DOlffl"r: 

GOTO2070 

BD=P: PRINT" PICKED 



(DOWN) U LEFT)UP"; 
HM 2070 FORDE=1TO2000:NEXT 
HR 2071 IF(BD=0)AND(TP<>4)THEN 

2105 
QE 2072 POKEX, 7 : POKEY, 12 :SYSPL 
T:PRINTECS: :IFTP<>4THE 
N2105 
QC 2073 GOSUB1900:PS=0 
HX 2075 P=FNNP{P) 
JS 2080 IFP=0THENGOSUB1800:GOT 

02090 
PK 2085 GOSUB1850:POKEX,MX(P) : 
POKEY, MY(P) : SYSPLT sPRI 
NT " ( RVS ) " ; 
RS 2086 FORDE=1TO600:NEXT 
FC 2088 IPTP=4T[iENPRINT" 

{ 2 SPACES ) PASS " ; : G0T02 
090 
RS 2089 BD=P:PRINTRIGHT5(ME$(T 

P+5),8); 
HD 2090 IF(P<>DL)AND(TP=4)THEN 

PS=PS+1:GQTO2075 
PK 2100 GOTO2109 
KK 2105 KU=1:IF(BD=0)AND(DL=.2) 

THENLH=1 :GOTO2120 
DR 2109 IFTP=4THEN2140 
RA 2110 IF(LH=1)AND(BD<>0)THEN 

2120 
DP 2111 IFBD=0THENGOSUB1615:GO 

TO2140 
RS 2112 GOSUB162S 
MA 2U5 IFLH=0THEN2140 
EX 2120 POKEX, MX {BD) +2: POKEY, M 
Y ( BD ) : SYSPLT : PRINT " 
(RVS) LONEHAND"; 
CF 2140 PRINT" [OFF)" ; :F0RDE=1T 

02000 :NEXT 
DX 2145 GOSU]n900 
PG 2150 RETURN 
DF 2200 POKE19G,0:F=-1 
GE 2205 F=F+1 :IFC(0,F)=-1THEN2 

205 
PQ 2210 G=F:POKESX+1,214:POKES 
X, (F*5+3)*8+22:POKE532 
69,1 
AG 2215 POKESX+l,214:POKESX, (F 

*5+3)*8+22 
QS 2220 GETRS:DR=PEEK(56320) :l 
F ( R?= " " ) AND ( DR=127 ) THE 
N2220 
ES 2225 G=F:IFNOT( CR$="[LEFT}" 

)OR(DR=123) )THEN2250 
XF 2230 F=NF{F);IFC(0,F)<0THEN 

2230 
CA 2245 GOT02215 
BP 2250 IFNOT((RS=" (RIGHT) ")0R 

(DR=119))THEN2275 
DA 2255 F=NF(F+2) :IFC{0,F)<0TH 

EN2255 
QD 2270 GOT02215 
FH 2275 IFNOT{ (R5=CHR5(13))OR( 

DR=111))THEN2215 
KB 2280 RETURN 

DG 2300 FORI=0TO4iIF(S(P,I)=TP 
)AND(C(P,I)=2)THENC(P, 
I)=7:GOTO2310 
HK 2305 IFnS(P,I)AND253) = (TPA 
ND2S3))AND(C{P,I)=2)TH 
ENC(P,I)=6:S(P,I)=»TP 
SA 2310 NEXT 

AH 2315 FORI=0TO4:FORJ=0TO3:IF 
S(P, J)>S(P, J+l)THENGOT 
02331 
QE 2320 IFS(P,J)=S(P, J+1)THENI 
FC(P,J)>C(P,J+1)THENG0 
T02331 
GC 2325 T=C(P,J) :C(P,J)=C(P,J+ 

1) iC(P,J+l)=T 
KP 2330 T=S(P, J) :S(P,J)=S(P,J+ 

1) :S(P,J+1)=T 
XC 2331 NEXT 

SX 2335 FORI=0TQ4:PT(I)=0:IFS( 
P,I)=TPTHENPT(I)=C(P,I 
)+10:GOTO2350 



March 1987 COMPUTEJ 49 



SF 2340 IFC(P, I) = 5THEtlPT(l)=9: 

GOTO2350 
QC 2345 IF(S(P,I)<>S(P,NF{I) )) 

AND(S(P,l)<>S(P,NF(I+2 

) ) >THENPT(I )=-l 
CE 2350 NEXT 
XM 2355 L=99:FORI=0TO4:IFPT(I) 

<LTHENF=I : L=PT ( I ) 
SQ 2360 NEXT: RETURN 
MJ 2500 FORI=0TO3:FORJ=0TO3:NS 

( I , J ) =0 : NEXT : FOR J=0TO4 

:IFC(I, J)<>2THEN2515 
QH 2505 IFS(I,J)=TPTHENC(I,J)= 

7:GOT02515 
RD 2510 IFABS(S(I, J)-TP)=2THEN 

C(I,J)=6:S{I,J)=TP 
GQ 2515 NS(I,S(I,J))=NS(I,5(I, 

J) )+l: NEXT: NEXT 
RX 2520 RETURN 
KJ 2700 PRINT" {home] (2 DOWH? 

1 2 RIGHT ) ( RVS ) PARTNER? 

[OFF]"; :LO=9:HI=10:XP= 

2:YP=12:GOSUB1910 
FK 2705 FC{0)=0:IFAN=10THENFC{ 

0) = 2 

XM 2710 PRINT" (home) {2 DOWN) 

{2 RIGHT) (RVS ) OPPONENT 
S7(0FF3"! :LO=9:HI=10:X 
P=2 : YP=14:GOSUB1910 

EG 2715 FC(1)=0:IFAN=10THENFC( 

1) = 2 

GG 2720 PRINT" (home) (2 DOWN) 

(2 RIGHT) (RVS) 

(10 SPACES] (OFF] "; :RET 

URN 
FS 3000 FQRI=0TO7:FORJ=OTO3:CL 

( I , J ) =0 : NEXT : NEXT : CL ( 2 

,TPAND253)=1 
FF 3001 FORI=0TO3:SL(I)=0:NEXT 
XX 3002 LD=FNNP(DL) :DM=4:TR(0) 

=0 :TR( 1 ) =0 ! IFLH=0THEN3 

015 
QR 3005 IFBD=2THENFORI=0TO4jPO 

KEX, 19iP0KEY, 1*5+2 :SYS 

PLT:PRINTECSr :NEXT 
JE 3010 DM=.F^f^JP { FNNP ( BD ) ) 
BB 3011 IFLH=1THENIFLD=DMTHENL 

D=FNNP(LD) 
EJ 3015 FORTK=0TO4:P=LD:PS=0:T 

L=0 : I FDH=PTHENP=FNNP ( P 

) 
SP 3020 GOSUB3 500:WP=PilFLH=lT 

HENPS=PS+1 
DX 3021 SL(S(P,PC(P)) )=1 
PP 3025 IFS(P,PC(P))=TPTHENTL= 

1 
FH 3030 F0RI=1T03:P=FNNP(P) :IF 

P=DMTHEN3060 
RS 3035 PS=PS+1:GOSUB3500:IFTL 

=0THEN3050 
XF 3040 IFS(P,PC(P))=TPTHENIFC 

(P,PC{P))>C(WP,PC(WP) ) 

THENWP=P 
JD 3045 GOTO3060 
GS 3050 IFS(P,PC(P) )=TPTHENWP= 

P:TL=1 :GOTO3060 
CK 3055 IFS(P,PC(P) )=S(WP,PC(W 

P) }THENIFC(P,PC(P) }>C( 

WP , PC ( WP ) ) THENWP=P 
DF 3060 NEXT:FORDE=1TO400:NEXT 
KO 3065 POKESX+3, (PX(WP)+1)*S+ 

52:POKESX+2, {PY{WP)+1) 

*a+19:POKE53269,2 
GX 3071 FORDE=1TG30O0:NEXT:LD= 

WP:VVT=WPAND253:TR(WT) = 

TR(WT)+1 
HG 3072 P0KEX,21:P0KEY,31+4*WT 
:SYSPLT:N=TR(WT) :GOSUB 

1465:POKE53269,0 
QF 3075 FORI=0TO3:POKEX,PX(I) : 

POKEY , PY ( I ) : SYSPLT : PRI 

NTEC?; :C(I,PC{I) )=-l :N 

EXT: NEXT 
KJ 3078 P0KEX,MX(BD)+2:P0KEY,M 



Y{BD) :SYSPLT:PRINT" 
(RVS) (9 spaces) (OFF) ■' ; 
DR 3B80 BT=BDAtID253:POKEX, 15:P 

OKEY, 28: SYSPLT 
XA 3085 PRINT"{BLK)": :IFTR(BT) 

<3THEN310S 
JP 3086 IFTR(BT) <5THEN3097 
AB 3037 PU(BT)=PW(BT)+2+LH*2 
CF 3090 IFBT=0THENPRINT" 
(2 spaces) YOU 
(2 SPACES) WON (DOWN) 
(9 LEFT)ALL TRICKS"; :G 
OTO3200 
RB 3095 IFBT=1THENPR1NT"C0MPUT 
ER WON{DOWN}(11 LEFT)A 
LL TRICKS"; :GOTO3200 
FQ 3097 PW(BT)=PH(BT)+1 
EA 3100 IFTR{0)>2THENPRINT"YOU 

WON HAND"; :GOTO3200 
FP 3105 IFTR(1)>2THENPRINT" 
(2 SPACES) COMPUTER 
(DOWN) {8 LEFT) WON HAND 
"; :GOTO3200 
SR 3108 PW(l-BT)=PW(l-BT)+2 
GE 3110 IFTR(0)<3THENPRINT"YOU 
'VE(2 SPACES) been 
(down) (10 left) EUCHRED 
i" :GOTO3200 
QM 3115 IFTR(1 )<3THENPRINT" 
[2 SPACES} COMPUTER 
(DOWN) 18 LEFT)EUCHRED1 

GH 3119 FORDE=1TO4000:NEXT 

EG 3200 FORDE=1TO4000:NEXT:PRI 

NT"(BLU)"; 
GJ 3 205 RETURN 
JJ 3500 IFP>0THEN3509 
EG 3501 PQKEX,15:P0KEY,28:SYSP 

LT 
GK 3502 PRINT" (BLK) (RVS) YOUR 

(2 SPACES) PLAY (OFF) 

(BLU)"; :GOSUB2200 
MA 3303 LS=S(LD,PC(LD)) :IF(PS= 

0)OR(S(P,F)=LS)OR(NS(P 

,LS)=0)THEN3507 
QM 3504 GOSUB2215:GOTO3503 
AF 3505 POKE53269,0:POKEX,19:P 

OKEY, F* 5+2: SYSPLT :PRIN 

TEC?; !GDTO3 5 30 
PE 3507 POKEX, 15:POKEY,28:SYSP 

LTi PRINT" (12 SPACES)" 
EG 3508 POKE53269,0:POKEX,19iP 

OKEY , F* 5+2 : SYSPLT : PRIN 

TEC?; :GOTO3530 
FJ 3509 IFTK<5THEN3515 
ER 3510 FORK=0TO4:IFC{P,J}>-1T 

HENF=I 
RH 3512 NEXT:GOTO3530 
HH 3515 ON{PS+1)GOSUB4000,4100 

,4200,4200 
QF 3530 PC(P)=F:POKEX,PX(P) :P0 

KEY,PY(P) :SYSPLT:C=C(P 

,F) :S=S(P,F) :GOSUB1200 
RG 3535 NS(P,S(P,F))=NS(P,S(P, 

F))-1:CL(C(P,F),S(P,F) 

) = 1 
MX 3540 RETURN 
SH 4000 IFN0T(NS(P,TP)=5-TK)TH 

EN4015 
GR 4005 SP-TP:GOSUB5200:IFF=1T 

HENGOTO5150 
MQ 4010 GOTD5160 
BA 4015 IFN0T((LH«1)AND(BD=P) ) 

THENGOTO4030 
SF 4020 IFNS(P,TP)>0THENSP=TP: 

GOTO5150 
RR 4025 GOTO5050 
QF 4030 GOSUB5a00:IF(F=l)AND(A 

BS ( BD-P ) =2 ) THENSP=TP : G 

OTO5150 
CH 4035 GOSUB5250:IFNOT((F=1)A 

ND(P=BD) }THENGOTO5050 
CF 4040 GOSUB5200:IFF=1THENSP= 

TP:GOTO5150 



FQ 4045 IFNS(P,TP)>2THENSP=TP: 

GOTO5160 
JC 4050 GOTO5050 
HF 4100 IFNS(P,S(LD,PC(LD}) )=0 

THEN4115 
RJ 4105 GOSUB5300:SP=S(LD,PC(L 

D)) :IFF=1THEN5150 
DH 4110 GOTO5160 
XR 4115 IFNS{P,TP)=5-TKTHENSP= 

TP:GOTO5160 
SB 4120 IFNS(P,TP)=0THEN5100 
PD 4125 IFC{LD,PC{LD) )=5THENSP 

=TP:GOTO5160 
QC 4130 IFBD<>PTHENSP=TP:G0T05 

160 
XM 4135 GOSUB5250:IFF=1THENSP= 

TP: GOTO 5 160 
EB 4140 GOTO5100 
SA 4200 IFNS(P,S(LD,PC(LD) ))=0 

THEN4235 
MJ 4201 SP=S(LD,PC(LD)) 
KH 4205 IF(SP<>TP)AND(TL=1)THE 

N5160 
RS 4210 IPABS(WP-P)<>2THEN4225 
PR 4215 GOSUB5300:IFF=1THENGOS 

UB5350:IFF=0THEN5150 
GS 4220 GOTO5160 
JK 4225 GOSUB5300:IFF=1THEN515 


DX 4230 GOTO5160 
BH 4235 IFNS(P,TP) <:5-TKTHEN42 7 


XG 4245 SP=TP:IFABS(WP-P)=2THE 

N5160 
XA 4250 IFTL=0THEN5160 
RQ 4255 GOSUB530a:IFF=lTHENGOT 

05400 
MR 4260 GOTO5160 
BS 4270 IFNS(P,TP)=0THENGOTO51 

00 
KA 4275 IFABS(WP-P)<>2THEN4310 
HD 4280 IF(TL=l)OR(PS=3)THEN51 

00 
XP 4285 IFC(WP,PC(WP))=5THEN51 

00 
HG 4290 IFC(WP,PC(WP) )<4THENSP 

=TP:GOTO5160 
PD 4300 GOSUB5250:IFF=1THENSP= 

TP:GOTO5160 
FQ 4305 GOTO5100 
GE 4310 IFTL=0THENSP=TP:GOTO51 

60 
BP 4315 GOSUB5300:IFF=1THENSP= 

TP:GOTO5400 
MQ 4320 GOTO5100 
BQ 5000 F=0:FORA=0TO4:IFC(P,A) 

>5THENF=1 
BA 5005 NEXT: RETURN 
QR 5050 F=-1:FORA=0TO4:IF(SL(S 
(P,A) )=0)AND{S(P,A)<>T 
P ) THENIFC ( P , A ) =5THENF= 
A 
BD 5055 NEXT:IFF>-1TKEN5070 
CS 5060 LC=-l:F0RA=0TO4!lFS(P, 
A)<>TPTHENIFC(P,A) >LCT 
HENLC=C(P,A) :F=A 
SB 5065 NEXT 
BQ 5070 RETURN 

GK 5100 IFNS(P,TP)>0THEN5125 
SD 5105 SP"-1 :FORA=0TO4 
KM 5110 IFS(P,A)<>TPTHENIF(C(P 
,A)=5)AND(KS(P,S(P,A) ) 
>1)THENSP=S(P,A) 
EJ 5115 NEXT:IFSP>-1THEN5160 
PH 5120 GOTO5180 
FX 5125 V=4:F=-1:FORA=0TO4 
DG 5126 IFSCp,A)=TPTHEN5135 
XP 5130 IF(NS(P,S(P,A) )<>1)0R( 

SL(S(P,A))=1)THEN513 5 
FH 5131 IF(C(P,A)>=0)AND(C(P,A 

)<V>THENV=C(P,A) :F=A 
HJ 5135 NEXT:IFF=-1THENS180 
FA 5140 RETURN 
BJ 5150 IFPS=3THEN5400 



60 COMPOTE! March 1987 



MQ 5151 V=-l:FOilA=0TO4:IFS(P,A 
)=SPTHENIFC(P,A)>VTHEK 
V=C(P,A) :F=A 
MS 5155 NEXT: RETURN 
SJ 5160 V=10:FORft=0TO4 
EH 5161 IFS(P,A)=SPTHENIF(C(P, 
A)>=0)AND(C(P,A)<V)THE 
tiV=C(P,A) :F»A 
RR 5165 NEXT: RETURN 
SM 5180 V=10:FORA=0TO4:1FS(P,A 
)<>TPTHENIFC(P,A)>-1TH 
ENIFC(P,A) <VTHENV=C(P, 
A) :F=A 
QD 5185 NEXT: RETURN 
XJ 5200 HT=B:F=0 
QH 5205 HT=HT-1 :IFHT>0THENIFCL 

(HT,TP)=1THEN5205 
GJ 5210 IFHT<0THEN5240 
QS 5215 FORA=0TO4:IFS(P,A)=TPT 

HENIFC ( P , A ) =HTTHENF=1 
BG 5220 NEXT 
DM 5 240 RETURN 

XG 5250 F=1:FORA=0TO4:IFC(P,A) 
>-lTHENIF(S(P,A)<>TP)A 
ND ( C ( P , A ) < 5 ) THENF=0 
PH 5255 NEXT: RETURN 
DD 5300 F=0:FORA=0TO4:IFS(P,A) 
=S(WP,PC(WP) )THENIFC(P 
,A)>C(WP,PC(WP) )THENF» 
1 
AF 5305 NEXT:RETURN 
ES 5350 F=0:FORA=0TO4:IFS(P,A) 
=S(WP,PC(WP) )THENIFC(P 
,A)-C(WP,PC(WP) )=1THEN 
F=l 
BK 5355 NEXT: RETURN 
PH 5400 D=10:FORA=0TO4 
BC 5405 IFS(P,A)=S(WP,PC(WP})T 
KENE=C(P,A)-C(WP,PC(WP 
) ):IF(E<D)AHD(E>0)THEN 
D=E : F=A 
MX 5410 NEXT: RETURN 
QE 6000 FORR=54272T054296:POKE 

R,0:NEXT:POKE54275,1 
QC 6010 POKE54277, 21 :POKE5427a 
,135:POKE54273, 150:POK 
E54276,17 
HX 6020 FORR=15TO0STEP-.2:POKE 

54296, R:NEXT 
FR 6030 POKE54276,16;POKE54296 

,0:RETURN 
QG 10000 POKE53285,13:POKE5328 
7,11:POKE53 288,5:POKE 
53276,2:POKE2040,13:P 
OKE2041,14 
SX 10010 SA=832:FORJ=0TO1:SA=S 
A+J* 64 ! FORI=0TO63 : REA 
DA:POKESA+I,A:NEXT!NE 
XT I RETURN 
PJ 10050 DATA 0,96,0,6,108,0,6 

,108 
SX 10051 DATA 0,6,109,128,3,10 

9,128,3 
DF 10052 DATA 253,128,27,255,0 

,13,255,0 
PF 10053 DATA 15,255,0,7,254,0 

,3,254 
AX 10054 DATA 0,1,252,0,0,252, 

0,0 
GF 10055 DATA 252,0,0,0,0,0,0, 


HS 10056 DATA 0,0,0,0,0,0,0,0 
RH 10057 DATA 0,0,0,0,0,0,0,19 


PP 10060 DATA 10,170,168,10,14 

9,168,10,85 
SR 10061 DATA 104,9,89,88,9,10 

6,152,9 
SG 10062 DATA 153,88,9,153,88, 

9,153,88 
BB 10063 DATA 9,153,88,9,106,8 

8,9,89 
KH 10064 DATA 152,9,89,152,9,8 
9,152,9 



RX 10065 DATA 89,152,9,170,88, 

9,89,88 
DF 10066 DATA 10,85,104,10,149 

,168,10,170 
FX 10067 DATA 168,0,0,0,0,0,0, 





Program 2; Euchre For Atari 
400, 800, XL, And XE 

SHI GRAPHICS 0:PDKE 710, 6:P 
OKE 70'?,0:PDKE 712,112: 
PRINT "PLEASE WAIT" 

E[ 2 FOR 1=0 TO I1:READ A:PD 
KE 1664+1 , A! NEXT I 

JB 5 DATA 104,165,203,37,204 
, 133, 212, 169, 0, 133, 213, 
96 

ID 10 POKE 7S2,1:G0SUB 1100: 
BOSUB 1000:BOSUB 2700: 
BOSUB 1300 

XJ 25 GDBUB 2000 

«K 30 IF TP04 THEN 70 

JC 35 POSITION 29, 11:? 
EHjH" 

n 40 POSITION 27,12:? 



KK 50 BOSUB 1400: X = 19: FOR 1 = 
TO 4: Y=I«5+1 : SOSUB 9 
000! NEXT I 

(1051 J = DL:GOSUB 8100:DL = K:X 
=7: Y=12: BOSUB 9000 

ID35 GDSUB l900:GaTD 25 

C£ 70 POSITION 2a, 1 1 : ? 



^^T" ;RS» (TP + 1 , TP+1) 
«I 75 POSITION 28,12:? "[11132 
HiHB";:IF BD=0 THEN ? 
"EIDI"; : GOTO 90 
CK 80 ? "E" ; CHR* (ASC (STR« (BD 

) > +12B) 
UK 90 IF KU = THEN 135 
OF 100 IF DL>0 THEN 125 
0E115 POSITION 27,14:? "PIC 

K DISCARD" 
M121 BOSUB 2200: POSITION 2 

7, 14:? "£12 a3n3ia>"; : 

BDTO 130 
«N 125 BOSUB 2300 
CP 130 C<DL, F> =KC: S <DL,F)=KS 

SSOSUB 1220 
BK 135 X = 7: Y=l 1 : BOSUB 9000 
66 140 SOSUB 2500: GDSUB 3000 

: IF CPW (0) >9) OR (PW < 

1 ) >9) THEN 300 
OP 150 X = 30: Y = 20: N = 0: GDSUB 1 

465 
E6 151 X = 36: Y = 20: N = 0:6OSUB 1 

465 
»H 200 X's30: Y-6:N = PW (0) : GOSU 

B 146S 
£1205 X = 36: Y = 6; N = PW (1 ) s SOSU 

B 1465 
01210 J = DL:QOSUB 8100:DL=K: 

GQSUB 1355: GOTO 25 
KB 300 WT = 0:IF PW(1)>=10 THE 

N WT=1 
FE 305 X = 27 + WT«6: Y = 6: N=l :GOS 

UB 1465 
EI 310 X = 30 + WT»6: Y = 6: N = PW (WT 

)-10:BOSUB 1465 
I:N315 FDR DE=1 TO 100!NeXT 

DE 
PO 320 BD5UB 1 450 s POS I T I ON 2 

9, 13; ? " rasTT " I 
JD321 IF HT = THEN ? 



JFfTH 



HE 322 IF WT=1 THEN ? 



•>=^=' 



D8 325 POSITION 2,2:? "PLAY 

AGAIN?" 
JB 330 LD=1 1 : HI = 12: XP = 2: YP=1 

4: BDSUB 1910 



HI 340 

CIC 3 50 

OK 1000 

IH 1005 

OQ 1010 

JB 1015 

JJ 1025 

60 1030 

PH 1040 

IL 1042 
HB 1043 
flD 1045 
JK 1050 

HD 1055 

AJ 1081 

ES 10B2 

CD 1090 
RR 1 100 



KD 1101 

KN 1 102 

OL 1 103 

CB 1 105 

Dt 1 1 1 

DH 1115 

FF 1 120 

OK 1 150 

«P 1 155 

LC 1 160 

M 1161 

BC 1 163 

AK 1165 

HL 1 170 



IF AN=11 THEN RUN 
GRAPHICS 0:END 

? CHR»(125) 

POSITION 27,0:? " 

<:cj:>ci0 Exg}" 

POSITION 27,1:? "1^ 

I |l| II I —I 

POSITION 27,2:? '■ 

{&><10 [TJ tffij " 

POSITION 30,3:? "POI 

NTS" 

POSITION 27,4!? "^Sl 

EBtEJ CEJ Iiliiau " 

FDR 1=0 TO 4:PDSITI0 

N 27, 5+1 : ? " 

C5 aaiffia-i i cej i^y 

<5 a3ng^>":NEXT I 

POSITION 27, 10:? " 

CI 2 CJ" 

POSITION 27, 16: ? " 

<12 a2IH^> " 

POSITION 30, 17:? "TR 

ICKS" 

POS ITION 27,18!? "K5 

HIBCEl {E>[3C:iai" 

FOR 1=0 TO 4:PDSITI0 

N 27, 19 + 1: ? " 

CS a3iH^>CEJfC} 

<5 aanas>"; :NEXT i 

N=0: X=30: Y=6: BOSUB 1 
465: X=36:B0SUB 1465 
X=30:Y=20! SOSUB 1465 
:X=36:GDSUB 1465 
BDSUB 1450: RETURN 
DIM CI* ( 16) , C2»( 16) , 
ME* ( 10) , THE* ( 140) , BL 
* ( 10) ,FC (2) , DC(23) , D 
S (23) ,EC« (5) , MX (3) ,M 
Y C3) 

DIM CX (3) , CY (3) , C (3, 
4) , S (3, 4) , A« ( 10) , S* t 
4) , OB (6) ,GU(6) ,PU(6) 
,MS(6, 3) ,BA (6) , PX (3) 
,PY(3) ,NF(6) ,CL<7,3) 
DIM SP (3, 5) , NS (3, 5) , 
CP{5) ,RS*<4) ,LTMEC13 
) , PT(4) , SL <3) , TR( 1) , 
PC<3) , NMl* (30) , NM2* ( 
30) , NM3* (30) , PW( 1 ) 
S*=" I. 1 fPJ {, J C; 1 " :RS 

»= " <:h> cg> cb> €n> " : bl* 

'»"C10 SPACES> " !EC«=" 

C5 SPACES>" 
FDR 1=0 TO 3:F0R J=0 
TD 5: SP ( I , J) =0: NS ( I 

,J)=0:NEXT J:NEXT I 
Cl*="9 10J CJ K A J J 



C2* 

J" 

RESTORE 

TD 6:RE 
:NEXT I: 
,3,4,0 
FOR J=0 

TO 3 
DC (J«6+I 
) =J 

NEXT I:N 
0: PW (1) 
RESTORE 

TO 3:RH 
=A: PYd ) 
Tfl 13,11 
16 
RESTORE 

TO 5:RE 
:NEXT I: 
,2,-1 
RESTORE 

TD 3: RE 
-A: CY ( I ) 
DATA 12, 
7, 16 



910 J Q K A J 



1120:FDR 1=0 
AD A: NF( I ) =A 
DATA 4,0, 1,2 

TO 3:FaR 1=0 

>=I : DS (JJ6+I 

EXT J:PW(0)= 



1161:F0R 1=0 

AO A, B:PX ( I ) 

=B:NEXT I : DA 

,7,6, 1, 11,7, 

1163:FDR 1=0 
AD A:CP ! I ) =A 
DATA 1,1,8,1 

1170:FDR I"0 
AD A, B:CX ( I ) 
=B:NEXT I 
11,7,6,2, 11, 



Morch 1987 (>}MPUTEI 51 



HL1172 NH1«="{I} ■ tU> tU> 
{i5> < I> CUJ <I> C2 U> 
< I > <: I > '■ 

JB1173 NM2« = "{C? ■ <:i>'C2 UJ 
CK> CU} <I> ■ CI> 

CA1174 NM3«=" BO SPACES)B 
{5 SPACES>B 

ts spAces>" 

l(H1175 RESTORE 117B:F0R 1-0 
TO 13:READ ft*:J=LEN 

(A*) : LTME ( I ) =J-1 : IF 

J<10 THEN A*(J+1)=BL 

« 

J= ( I ) »10+l:TMe» ( J>-A 

*:NEXT 1 

DATA PASS, ORDER UP,P 

ASS, PICK UP, PASS, 

t.J DIAMONDS 

DATA CPJ CLUBS, t , > H 

EARTS,{;> SPADES, NOR 

MAL, AGGRESSIVE, YES,N 

a, YES 

RESTORE liaS:FOR I-l 
TO 3:READ A,B:MX(I) 

= A: «Y(I)=B: NEXT I ! DA 

TA 7,1,1,9,7,17 

RESTORE 1190:FDR 1=0 
TO 6;READ A,B,C,D,E 

,F,G,H: OB ( I) =A: QU ( I ) 

=B: PU ( I )=C 

MS < I, 0) =D: MS ! 1 , 1 )=E: 

MS t I , 2)=F: MS ( I , 3)=e: 

GACI)=H:NEXT I 

DATA 99,99,99, 99, <?9, 

99, 99, 99 

DATA 99,99,99,99,99, 

99, 99, 99 

DATA 99, 99, 14,14,14, 

13, 13, 99 

DATA 

,!■? 
DATA 



BK 1 176 
Al 1 178 

OD 1179 
(!! 1 185 
PS 1 186 

IK 1 187 

U 1 190 

K 1 1 9 1 

61 1 192 

6C 1 193 

Hi 1 194 

M 1 195 

JP 1196 
LE 1199 
6D 12 

CC 1201 

Hf 1202 

5G 1203 

HI 1 204 

HE 1205 

<l 12 10 
FO 1220 

PJ 1225 

KE 12 30 
BA 125 

C6 1255 

6C 1260 

F8 1265 
111 1270 

fe 1275 



EL 1280 
BC 1300 



16 

DATA 
4 
DATA 



20, 12,9, B, a, 8, 7 
14,0,0,0,0,0,0, 
0,0,0,0,0,0,0, 1 
,0,0,0 



Y, 



1 



0,0,0,0,1 
RETURN 

IF CS=TP) AND (C=6) 
THEN S=S+2: S= (S/4-IN 
T (S/4 ) ) »4 
NC=C*2+1 :PDSITION 
X:? "<;0}{3 R}CE>" 
POST TIDN Y,X + 1:? 
; CI* <NC, NC+l ) ; " 
POSITION Y,X+2:' 
" ; S« (S+I , S+1 ) ; " 
POSITION Y,X+3!' 
" ; C2* !NC, NC+l > ; 
POSITION Y,X+4:' 
{:Z>C3 R}<C>"; 
RETURN 

FOR U=0 TO 4:Y=Ut5+l 

: X-19 

C-C (0, U) iS-S (0,U) ! SO 

SUB 12a0:NEXT U 

RETURN 

FOR 1-0 TO 23:J=INT{ 

RND ( 1 ) t24) 

T-DC (I ) :DC ( I ) -DC< J) : 

DC (J) -T 

T-DS ( I ) ! DS ( n "DS ( J) : 

DS ( J) -T 

NEXT I 

FOR J-0 TO 3iF0R 1=0 

TO 4 
C(J, I) -DC( J«5+I> :S (J 
, I>-DS(J»5+I) iNEXT I 
:NEXT J>KC-DC(20) :K5 
-OS(20) 
RETURN 
POSITION 27,11!? "mi 



OC 1310 POSITION ZB,12i? "SET 

BadMns!" 

HC1320 eOSUB 1250: DL-0: CC = 
PC 1330 Y = CY (DL) : X = CX (DL) : C = 

DC(CC) :S-DS(CC> : GOSU 

B 1200 

FOR DE=1 TO 50INEXT 

DE 

POKE 203, DS (CC) -.POKE 
2 04, 253: J=USR( 1664) 

: IF (DC (CC)-^2) AND ( 

J=l) THEN 1355 

Y=CY(DL) ! X-CX (DL) : 60 

SUB 9000 

FDR DE-1 TO 10:NEXT 

DE 

CC=CC+ls J»DLsQOSUB B 

100. DL-K: GOTO 1330 

BOSUB 1450: POSITION 

2B, 1 1 

IF DL"0 THEN 1370 

n 



LA 1331 
[B 1335 

ra 1336 

LC 1337 

ntl 1340 

LP 1355 

FF 1356 
ND 1360 

AC 1365 

dS 1370 

BF 1375 
LC 1376 

Kit 13B0 
DK 1400 

«C 1 4 1 

BF 1 4 1 5 
CI 1430 
EI 1450 

PH 1465 

IP 1466 

JC 1467 

KK 1470 
FF 1500 

AC 1502 
CJ 1505 

HI 1510 

NA 1515 



FA 1520 
OP 1525 



HK 1530 



LE 1535 
EA 1540 

LA 1545 



KL 1550 
JB 1600 

AG 1605 

n 1610 

EL 1615 



t-JW:Vi=i:m " ; CHR» (AS 
C (STR» (DL> ) +12B) 
POSITION 29,12:? "BE 

ra^TKa " j sgoto 137S 

POSITION 28,12:? "CE 

HI ^ III'. 

GDSUB 1400 

Y-CY (DL) ! X"CX (DL) I GO 

SUB 9000 

RETURN 

POSITION 27, 14i? " H 

IT BUTTON '• ; 

IF STRIG(0)=1 THEN 1 
410 

BOSUB 1450 
RETURN 

FDR I-ll TO 15lPaSIT 
ION 27, I;? " 
tl2 aanS^>":NEXT I:R 
ETURN 

I-N«2+l : POSITION X,Y 
:? NM1» ( I , I+l ) ; 
POSITION X,Y+li? NM2 
• (I , I+l } i 

POSITION X,Y+2:? NM3 
»(I, I + l) ; 
RETURN 

FDR 1-0 TO 3:P0KE 20 
3,P!P0KE 204,253!J-U 
3R (1664) 

SP (P, I )-FC (J) sNSiP, I 
)-0:NEXT I 

FDR 1-0 TD 4: 3-S (P, I 
) : C-C (P, I ) : SP (P,3)"S 
P(P, 3) +CP (C) ! N3 (P, 3) 
-NS(P, 3) +1 

IF C-2 THEN S-3+2i3- 
{S/4-INT(S/4) ) »4l SP( 
P, S) ■3P(P, S) +6:N3(P, 
3)-NS fP, S) +1 
IF C-5 THEN FOR J-0 
TO 3:3P(P, J)-SPtP,a) 
+4SNEXT J 
NEXT I 

SS-0:FOR 1-0 TO 4(IF 
NS(P, I ) -0 THEN SP(P 
, I) =0: SS = SS+1 
NEXT IsFQR 1-0 TO 3: 
SP (P, I > =SP (P, I ) +SS:N 
EXT I 

IF POOL THEN 1550 
IF KC-5 THEN SP(P,KS 
)=SP(P, KS) +4 
SPtP, K3) -SP(P,KS) +CP 
(KC) tNStP, K3)-NS(P, K 
S) +1 
RETURN 

LO-0: HI-1 : XP-13t YP"l 
0:GOSUB 1910 
IF AN-1 THEN TP-KS 
RETURN 
POSITION a, 13:? "LQN 



EHAND"; 

Eft 1616 LO-12: HI-13: XP-=13: YP 
=17:G0SUB 1910:LH=0 

NF161B IF AN-13 THEN LH=1:P 
OSITION MY(BD),MX(BD 
) ! ? "LDNEHAND"; 
A6 1619 POSITION 8,13:? " 

t8 SPACES>"; 
y 1620 RETURN 
AS 1625 LH = 0:IF SP(P,TP)>6A( 

NS (P, TP) ) THEN LH=1 
Kt: 1630 RETURN 

ttl650 J-PsflOSUB ai00:J=K:G 

OSUB B100: IF K=DL TH 

EN GOSUB 1625:F=LH:G 

OTO 1685 

HO 1654 F = 0:IF KC-2 THEN GOT 

1660 
JA 1655 IF SP{P, KS> >DU(NS{P, 

KS) ) THEN F=l 
HJ 1660 IF SP (P, KS) >0B (NS (P, 

KS) ) THEN F-1 
ED 1665 J = DL:GOSUB 8100: IF ( 
F = 0) OR (POK) THEN 
16S5 
ftp 1670 SB = CP(KC)!lF KC = 5 TH 

EN SB=3 
BF 1675 FOR 1 = TO 3:IF lOK 
S THEN IF SP (P, I ) >- ( 
SP(P,KS)-SB) THEN F" 

FH 16B0 NEXT I 
HF16S5 IF F=l THEN TP-KS 
LJ 1699 RETURN 
JH 1700 L0 = 2! HI=3: XP=i3: YP=I 

1:G05UB 1910 
AJ 1705 IF AN = 3 THEN TP-KS 
KJ 1710 RETURN 
Fl 1750 IF SP (P, KS) >PU (NS (P, 

KS) ) THEN TP=KS 
LC 1755 RETURN 
H6 1800 L0 = 4:HI = e! XP-13I YP=9 

:GOSUB 1910 
IK 1801 IF AN-5-KS THEN 1B00 
FP1805 IF AN>4 THEN TP-AN-5 
UK 1810 RETURN 
BCiasa DF-0:FDR 1=0 TD 3: IF 

I=KS THEN 1B65 
II 185S IF SP(P, I ) -MS(N3 (P, I 

},PS)<DF THEN 1B65 
FH 1860 DF-SP(P, I ) -MS (NS (P, I 

) ,PS) : TP-I 
FH 1865 NEXT I 
LA 1B70 RETURN 

LC1900 FOR 1 = 1 TO 3!FaR J-0 
TO 2:P03ITI0N MY ( I ) 
,MX(I>+J:? " 
<i0 SPACES>"; 
BK 1905 NEXT J: NEXT I 
LB 1907 RETURN 
DC 1910 AN«=LO 

C(I191S POKE 77,0: Xl-XP: Y1"Y 
P:FOR I-LO TO HI:BOS 
UB B000:IF lOAN THE 
N 1925 
PB 1920 FDR J=l TO LEN(ME«): 
ME» (J, J)"CHR« ( ASC (ME 
» ( J, J) ) +128) : NEXT J 
J6 1925 POSITION Y1,X1:? ME» 

; : Xl-Xl+1 ! NEXT I 
HK 1930 DR-STICKt0) : IF DROl 

4 THEN 1940 
E6 1935 AN-flN-l:IF AN<LD THE 

N AN=HI 
IIP 1940 IF DR013 THEN 1950 
EH 1945 AN-AN+1:IF AN>HI THE 

N AN-LD 
HF1950 IF STRIQ(0)-1 THEN 1 

915 
DE 1955 Xl-XP: Yl-YP: FOR I-LO 

TO HI:G05UB 8000 
iB1960 POSITION Yl.Xl:? BL« 
! ! Xl-Xl + 1 ;NEXT I 



52 COMPUTEI March 198; 



LF 1965 RETURN 

1)02000 GOSUB 1250:QDSUB 122 

0:J=DL:GDSUB B100:P= 

K; TP=4: BD=0: KU=0 
PC2005 X = 7: Y=l 1 :C = KC:S = KS!B 

OSUB 1200 
DF 200 7 IF DL<>0 THEN POSITI 

ON MY (DL)+1,MX (DL) :7 
"DEALER" 
SJ 2010 QOSUB 1500 
IID2015 IF P = THEN GOSUB 16 

00:GDTD 2040 
CL2016 IF ABS(P-DL)<>2 THEN 

2020 
IIK2017 GDSUB 1 625 : I F LH=1 T 

HEN TP=KS:GDTO 2025 
EA2020 GDSUB 1650 
PH2025 POSITION MY(P),MX(P) 
IL 2030 IF TP = 4 THEN ? " Pfl 

SS":GOTO 2040 
LL 2035 BD = P:? "ORDER UP" 
NB 2040 J = P:GOSUB ei00:P = K:I 

F (PODLJ AND (TP = 4) 
THEN 2010 
HK 2045 P = DL: GOSUB 1500: IF T 

P04 THEN 2105 
SB 2050 IF DL=>0 THEN GOSUB 1 

700: GOTO 2070 
SB 2055 QOSUB 1 750 : POB I T ION 

MY (DL) ,MX (DL) 
GF2060 IF TP-4 THEN 7 " TUR 

NED" : POSITION MY(DL) 

, MX (DL) +1 ! ? " DOUN" 

:BDTD 2070 
PD2065 BD = P:? '■ PICKED"!PaS 

ITIDN MY(DL) , MX (DL)+ 

1 : ? " C3 SPACES} UP" 
m 2070 FOR DE=1 TO 100: NEXT 

DE 
fl(!2071 IF <BD = 0) AND (TP04 

> THEN 2105 
FO2072 X = 7: Y=l 1 :GOSUB 9000: 

IF TP04 THEN 2105 
6A 2073 GOSUB 1900:PS = 
DK 2075 J = P!QDSUB 8100:P = K 
(1112080 IF P = THEN GOSUB 18 

00: GOTO 2090 
IF 2085 GOSUB 1 850 : POSl T I ON 

MY(P) , MX (P) 
LB 20B6 FOR DE^l TO 30:NEXT 

DE 
«I 2088 IF TP = 4 THEN ? " PA 

SS" J ! SOTO 2090 
JS20B9 BD = P: I=TP + 5: GOSUB 80 

00:7 ME*; 
IN2090 IF (POOL) AND (TP = 4 

) THEN PS=PS+1:B0T0 

2075 
HI 2100 GOTO 2109 
BP2105 )<U=1:IF (BD'=0) AND ( 

DL=2) THEN LH=l:aOTO 
2120 
662109 IF TP = 4 THEN 2140 
002110 IF (LH=1> AND <BD<>0 

) THEN 2120 
PN21I1 IF BD = THEN QOSUB 1 

615SB0T0 2140 
IE2112 GOSUB 1625 
Ef2115 IF LH = THEN 2140 
fC2120 POSITION MY(BD),MX(B 

D):7 "LONEHAND" ; PDSI 

TION MY (BD) , MX (BD) +1 

;? "{8 SPACES!" 
NL2140 FOR DE=1 TO 100:NEXT 

DE 
66 2145 SOSUB 1900 
Kl 2150 RETURN 
HP 2200 F--1 
IS 2205 F-F+l!lF C(0,F)--1 T 

HEN 2205 
!P2210 S-F 

6X2215 POSITION G*5+l,19!? 
"{Q>C3 RJ <E>" rPOSITI 



FP 22 10 

riL 2220 

nl 2225 

m 2230 

NS 2245 

JQ 2250 

EB 2255 

BO 2270 

Hft 2275 

Kn 2280 

LO 2300 

DS 2305 

OK 2308 



EO 2310 

Bfl 2315 



N« 2320 

LP 2325 

PL 2330 

BE 2331 
SF 2335 

ED 234 
JJ 2345 



FC 2350 
SD 2355 



6N 2360 
H6 2500 



»F 2505 
JE 25 10 

HP 2515 



H 2520 

CO 2700 



OB 2705 
«L 2 7 1 



OS 27 15 
DC 2720 



DN 

{3 

POS 

" CH 

DN 

{3 

DR 



6 = F 

250 

F = N 

THE 

GOT 

IF 

F = N 

T 

GOT 

IF 

215 

RET 



G» 5+ 1,23:7 "£Z> 

R> CO " j 

ITIDN F*5+l,19:7 

>C3 R} CJ} ": POSITI 

F»5+l,23:7 " CS1> 

RXCJ " J 

STICK (0> ! POKE 77, 

IF DROll THEN 2 

F(F) : IF C (0,F)<0 

N 2230 

2215 

DR07 THEN 2275 

F(F+2>:IF C(0,F)< 

HEN 2255 

2215 

STRI6(0>=1 THEN 2 

URN 

FOR 1=0 TO 4: IF (S (P 
, I )-TP) AND (C (P, 1 ) = 
2) THEN C{P, I )=7:G0T 
2310 
POKE 203, S (P, I> iPOKE 

204, 253: J=USR ( 1664) 
iPDKE 203,TP:POKE 20 
4, 253: K=USR ( 1664) 
IF ( J=K) AND (C (P, I ) 
= 2) THEN C (P, I ) =6:S ( 
P, I )=TP 
NEXT I 
FDR 1=0 TO 4:FaR J=0 

TO 3: IF S (P, J) >S(P, 
J+I) THEN 2331 
IF S(P,J)=S(P,J-H) T 
HEN IF C (P, J) >C (P, J+ 
1) THEN 2331 
T=C (P, J) : C (P, J) =C(P, 
J+1 ) : C (P, J+1 ) =T 
T = S (P, J) :S (P, J) =S (P, 
J+1 ) : S (P, J+1 ) =T 
NEXT J:NEXT I 
FOR 1=0 TO 4:PT(I)=0 
: IF SCP, I ) =TP THEN P 
TCI ) «=C (P, I ) +10:GOTO 
2350 

IF C (P, I) =5 THEN PT ( 
1)=9:GDT0 2350 
IF (S (P, DOS (P, NF ( I 
) ) ) AND (S(P, I) OS (P 
,NF( 1+2) ) ) THEN PT (I 
)=-l 

NEXT I 

L=99:F0R 1=0 TO 4: IF 
PT<I)<L THEN F=I:L= 
PT<I) 

NEXT I:RETURN 
FOR 1=0 TO 3:F0R J=0 
TO 3: NS( I , J) =0: NEXT 
J: FDR J=0 TO 4: IF C 
( I , J) <>2 THEN 2515 
IF S ( I , J) aTP THEN C ( 
I,J)=7:G0T0 2515 
IF ABS (S ( I , J) -TP) =2 
THEN C ( I, J) =6: B ( I , J) 
-TP 

NS ( I, S ( I, J) > =NS (I, S ( 
I, J) >+l:NEXT JjNEXT 
I 

RETURN 

POSITION 2,2:? "PART 
NER7" ; :L0=9: Hl-10: XP 
=2: YP=I2: BOSUB 1910 
FC (0) =0: IF AN=10 THE 
N FC (0) =2 

POSITION 2,2:7 "OPPO 
NENTS?" J :L0=9: HI=10: 
XP=2: YP=14: GDSUB 191 


FC ( 1 ) =0; IF AN=10 THE 
N FC ( 1 ) =2 
POSITION 2,2:7 " 



<10 SPACES} ";: RETURN 

LD 3000 FOR 1=0 TO 7:F0R J=0 

TO 3: CL ( I , J)=0: NEXT 

J:NEXT I 

HK3001 POKE 203,TP:POKE 204 

, 253: I=UBR ( 1664) : CL ( 

2, I ) =1 :F0R 1=0 TO 3: 

SL (I ) =0: NEXT I 
Efl 3002 J = DL:GOSUB ai00:LD = K 

! DM=4: TR (0) =0: TR ( 1 >= 

0: IF LH=0 THEN 3015 
E! 3005 IF BD = 2 THEN X=19:F0 

R 1=0 TO 4:Y=I»5+1:G 

OSUB 9000:NEXT I 
D6 3010 J-BD:GOSUB 8100:J = K: 

GOSUB 8100:Dri = K 
IN3011 IF LH=1 THEN IF LD = D 

M THEN J=LD:GOSUB 81 

00: LD=K 
PN3015 FDR TK = TD 4:P = LD:P 

S=0:TL=0:IF DM=P THE 

N J=P:GOBUB ai00:P=K 
FE 3020 GOSUB 3500:WP = P:IF L 

H=l THEN PS=PS+1 
HI3021 SL <3<P,PC<P) ) )-l 
NL 3025 IF S (P,PC«P) )-TP THE 

N TL-1 
LP 3030 FOR I-l TO 3iJ"PiS0S 

UB 8100: P-K: IF P-DM 

THEN 3060 
PJ 3035 PS-PS+1 :GOSUB 3500:1 

F TL-fl THEN 3050 
M3040 IF S(P,PCCP> )-TP THE 

N IF C (P, PC(P) ) >C (WP 

,PC (WP) ) THEN WP"P 
no 3045 GOTO 3060 
HI 3050 IF S (P,PC(P) )-TP THE 

N WP-Pi TL-1 ! SOTO 306 


IE 3055 IF S(P,PC(P) ) »S (WP, P 

C(WP) ) THEN IF C (P,P 

C (P) ) >C (WP, PC (WP) ) T 

HEN WP-P 
HS 3060 NEXT I : FOR DE-1 TO 2 

0:NEXT DE 
PL 3065 POSITION PY(WP),PX(W 

P) : 7 "<C> 13 RXZI '■ ; 
fE3066 POSITION PYtWP),PX(W 

P)+4:? "tEJ {3 R>{Q>" 

II 3071 FDR DE=1 TO 150:NEXT 
DEs LD-WP: POKE 203, W 

P:PDKe 204, 253: J=USR 
( 1664) :WT"J: TR(WT)-T 

R(WT) +1 
BN 3072 X-30 + 6*WT: Y = 20:N-TR ( 

WT) :GOSUB 1465 
«0 3075 FOR 1-0 TO 3:X-PX<I) 

: Y'-PY ( I ) : BOSUB 9000: 

C(1,PC(I) ) =-l:NEXT I 

:NEXT TK 
LC307a POSITION MYCBD),MX{B 

D) :PRINT " 

<8 SPACES}"; 
NI 30B0 POKE 203, BD: POKE 204 

, 253:BT=USR( 1664) : PD 

SITION 27, 14 
FB30a5 IF TR(BT)<3 THEN 310 

B 
6S 3086 IF TR(BT)<5 THEN 309 

7 
110 3087 PW (BT) =PW (BT) +2 + LH*2 
SJ 3090 IF BT = THEN 7 "■■CZl 

CnHSnOBi" : POSITION 2 

7,15:7 " ■:l H^ i:»<gaM 

":GOTO 3200 
EB3095 IF BT=1 THEN 7 "HHSE 

Hnaacmz" : POSITION 2 
7. IS:? " ■naiBcnHHi^ 

"jQOTD 3200 
113097 PW (BT)=PW<BT) +1 
FL3100 IF TR(0)>2 THEN 7 "Cj 

rillMglri.'TTTrrTfT! " j ; BHTH 3 

200 



March 7987 COMPUTE! 53 



KP3105 IF TR(1) >2 THEN 7 "■ 

»»tiiai:iinwT^M " : pas itio 

N 27,15;? 1 I I ■ I I 

[l^":6DTO 3200 

PW ( 1-BT)-=PW( 1-BT) +2 

IF TRC0X3 THEN ? "C 

I |i|| I — III III I I I II 

N 27,15:? 1^ Ml I 11 I 

^■":SOTO 3200 

IF TR(1)<3 THEN ? "» 

N 27,1S:? 1 ill! II I 



SD 310B 
PF 3 1 1 



» 311S 



1(1(3200 FOR DE=1 TO 200! NEXT 

DE 
K3205 RETURN 
BF 3500 IF P>0 THEN 3309 
DJ3501 POSITION 27,15 
OE 3502 POSITION 27,14i? " Y 
OUR PLAY ";:0O3UB 2 
200 
Et350S L3 = S (LD, PC (LD) ) : IF ( 
PB-0) OR (BCP,F)=LS) 
OR (NS<P,LS>=0) THE 
N 3507 
FE 3504 QOSUB 2215:B0T0 3503 
FO3S05 Y = F«5+1: X = 19:6Q3UB 9 

000:GaTO 3530 
L8 3S07 POSITION 27,14:? " 

{12 bIJiM^-1 > " : 
6B350B Y=F«5+1: X=19:Q03UB 9 

000: GOTO 3530 
EN 3509 IF TK<5 THEN 3515 
PJ3510 FOR K-0 TO 4: IF C(P, 

J) >-l THEN F-I 
JII3512 NEXT KsBOTO 3530 
lfE3515 ON (PS + n BQSUB 4000 

,4100, 4200,4200 
HB3530 PC<P) »F: Y-=PY(P) : X-PX 
(P) ! C=-C(P, F) :S"3(P,F 
): QOSUB 1200 
IB 3535 NS(P,S(P, F> )-NS(P,S ( 
P, F) ) -1 ! CL (C (P, F) , 3 < 
P,F) >-l 
KI13540 RETURN 
lU 4000 IF NS(P,TP)<>5-TK TH 

EN 4015 
HO 4005 3P»TP:BDSUB 5200: IF 
F-1 THEN eOTO 5150 

n[;4010 BOTO 5160 

CB4015 IF <LH<>1) OR (BDOP 

) THEN 4030 
K64020 IF NS(P,TP)>0 THEN 3 

P=TP:BDTO 5150 
no 4025 BOTO 5050 
114030 BOSUB 5000s IF (F-1) 

AND (flBS(BD-P)-2) TH 

EN SP-TP:OOTa 31S0 

FO4035 QOSUB 5250! IF (FOl) 

OR (POBD) THEN 505 



1114040 BOSUB 5200: IF I-l TH 

EN SP"TP:BOTO 5150 
NA 4045 IF NS(P,TP)>2 THEN 3 

P-TP:BQTO 5160 
10(4050 GOTO 5050 
PK4100 IF NS CP,S(LD, PC CLD) ) 

)»0 THEN 4115 
HH4105 QOSUB 5300 i SP=3 ( LD , P 
C(LD) ) : IF F-1 THEN 5 
150 
IIL 4110 QOTO 5160 
JN4115 IF NS(P,TP)-5-TK THE 

N SP-TP:BOTO 5160 
I1K4120 IF NS<P,TP)-0 THEN 5 

100 
![4125 IF C (LD,PC (LD) )-3 TH 

EN SP=TP:QDTO 5160 
JJ4130 IF BDOP THEN 3P = TP: 

SOTO 5160 
114135 BOSUB 5250: IF F=l TH 

EN SP-TPsGOTO 5160 
m 4140 QOTO 5100 



AB 4200 

HL 4201 
JJ 4205 

EJ 4210 

ID 4215 

™ 4220 
IH 4225 

m 4230 
tl 4235 

NB 4245 

eC 4250 

IK 4255 

NB 4260 
NA 4270 

EP 4275 

LG 4280 

LL 4285 

LC 4290 

rC 4300 

BL 4305 
F6 43 10 

IE 4315 

nl 4320 
10 5000 

SE 5005 
EA 5050 



PF S055 
AJ 5060 



FA 5065 
KB 5070 
NB 5100 

KP 5105 

KJ S 1 1 



EP 5 1 1 5 

IIP 5120 
FF 5 125 

JK S126 

NB 5130 

LO 5 1 3 1 

PF 5135 

KK 5140 
6F 5 150 
:b 5 1 5 1 



IF NStP, 
)-0 THEN 
3P=3<LD, 
IF (SPO 
1) THEN 
IF ABS(M 

4225 
BOSUB S3 
EN BOSUB 

THEN 51 
BOTO 516 
BOSUB 53 
EN 5150 
QOTO S16 
IF NS (P, 
N 4 2 70 
SP=TP: IF 

THEN 51 
IF TL=0 



3 (LD,PC(LD) ) 

4235 
PC (LD) ) 
TP) AND (TL= 
5160 
P-P)<>2 THEN 

00: IF F=l TH 
5350: IF F=0 

S0 



00: IF F=l TH 





TPX5-TK THE 

ABS (WP-P)=2 
60 
THEN 5160 

IF F=l TH 



THEN 5 



THEN 



= 3) 



TH 



GDSUB 5300 

EN 5400 

BDTD 5160 

IF NS(P,TP)=0 

100 

IF ABS(WP-P)<>2 

4310 
IF CTL-l) OR (PS^ 
THEN 5100 
IF C(WP, PC(WP) )=5 
EN 5100 

IF C (WP, PC (WP) ) <4 TH 
EN SP=TP;BDTO 5160 
BOSUB 5250: IF F=l TH 
EN SP=TP:GOTO 5160 
BOTO 5100 

IF TL=0 THEN SP=TP:G 
DTO 5160 

GQSUB 5300: IF F= 1 TH 
EN BP=TP:6DTD 5400 
BOTO 5100 

F=0:FOR A=0 TO 4: IF 
C{P, A) >5 THEN F=l 
NEXT A:RETURN 
F = -l I FOR A = TO 4: IF 

(SL (S(P, A) > =0) AND 
(3(P,A)<>TP> THEN IF 

C(P,A)=5 THEN F=A 
NEXT A: IF F>~1 THEN 
5070 

LC=-1 : FDR A=0 TO 4:1 
F S(P,A)<>TP THEN IF 
C (P, A) >LC THEN LC=C 
(P, A) :F=ft 
NEXT A 
RETURN 

IF NS(P, TP) >0 THEN 5 
125 

SP=-1:F0R A=0 TO 4 
IF S(P,A)<>TP THEN 1 
F (C(P,A)=S) AND (NS 
(P,3 (P, A) ) >1 ) THEN S 
P=3 (P, A) 
NEXT A: IF 3P>-1 THEN 

5160 
GOTO 51B0 

V=4:F=-1:F0R A=0 TO 
4 

IF S(P,A)=TP THEN 51 
35 

IF CNS (P,S (P, A) ) <>1 ) 
OR (SL(S (P, A) )=1 ) T 
HEN 5135 
IF (C (P, A) > = 0) 
C(P,A)<V) THEN 
, ft) : F=A 

NEXT A: IF F=-l 
5180 
RETURN 

IF PS=3 THEN 5400 
V=-l:FOR A=0 TO 4: IF 
S(P,A)>=SP THEN IF C 
CP, A) >V THEN V=C<P, A 
) ;F=A 



AND ( 
V = C (P 



THEN 



BJSISS NEXT A:RETURN 

565160 V=10:FaR A = TO 4 

NA5161 IF S(P,A)=SP THEN IF 
(C(P,fl)>=0) AND (C( 
P,A)<V) THEN V=C(P,fl 
) : F = A 

8L5165 NEXT A: RETURN 

flH5ie0 V=10!FOR A = TO 4: IF 
3(P,A)<>TP THEN IF 
C(P, A) >-l THEN IF C( 
P,A)<V THEN V=C(P,A) 
SF = A 

EI(51B5 NEXT AsRETURN 

ff 5200 HT=a:F-0 

OF 5205 HT-HT-1:IF HT>0 THEN 
IF CL(HT,TP)=1 THEN 
5205 

FJ5210 IF HT<0 THEN 5240 

AP5215 FDR A = TO 4: IF S(P, 
A)=TP THEN IF CtP.A) 
=HT THEN F=l 

EJ 5220 NEXT A 

KL 5240 RETURN 

DC 5250 F=1:F0R A = TO 4:IF 
C(P, A) >-l THEN IF <S 
(P,A»<>TP) AND (C(P, 
A)<5> THEN F=0 

Bi 5255 NEXT A; RETURN 

(((5300 F = 0:FOR A = TO 4: IF 
S(P, A) -S (WP,PC (WP) ) 
THEN IF C (P, A) >C(WP, 
PC(WP) ) THEN F=l 

6N5305 NEXT A: RETURN 

AO 5350 F = 0;FOR A = TO 4: IF 
3 <P, A) =S(WP, PC iWP) ) 
THEN IF C(P, A)-C(WP, 
PC (WP) )=1 THEN F=l 

SB 5355 NEXT A:RETURN 

FB 5400 D=10:FaR A = TO 4 

BH 5405 IF S(P, A)=S (WP, PC (WP 
) ) THEN E=C (P, A)-C (W 
P, PC (WP) ) : IF (E<D) A 
NO (E>0) THEN D-EsF= 
A 

BE 5410 NEXT A:RETURN 

Nl B000 J = U10+1 : Me*-TME« { J, 
J+LTME { I ) ) :RETURN 

mS100 K= ( ( J+1 ) /4-INT ( ( J+1 ) 
/4) ) »4: RETURN 

PC 9000 FOR a = X TO X + 4:P0SIT 
ION Y, J:PRINT EC»; : N 
EXT J:RETURN 

Program 3: Apple II Euchre 

?C 5 POKE 49232,0: POKE 49237,0: 

POKE 49239,0: POKE 230,64: 

POKE 28,42: CALL 62454 
ZZ B BOSUB 1100 
91 10 BOSUB 1000: GOSUB 2700: BO 

SUB 1300 
n 25 BOSUB 2000 
C5 30 INVERSE : IF TP < > 4 THEN 

70 
IJ 35 VTAB 12: HTAB 30: PRINT "N 

BIDDERS" 
IF 40 VTAB 13: HTAB 29: PRINT "H 

AND DUMPED" 
73 50 NORMAL : GOSUB 1400: X ■= 20 

: FOR I-=0TD4!Y-I«4 
+ 5: BOSUB 9000: NEXT 
C7 51 DL =■ FN NP(DL):X = B:Y = 1 

3: BOSUB 9000 
A! 55 GDSUB 1900 s GOTO 25 
D9 70 VTAB 12: HTAB 30; PRINT "T 

RUMP : ■';S»(TP) 
IF 75 VTAB 13: HTAB 30: PRINT "B 

IDDERs "ji IF BD = THEN 

PRINT "YOU"j: BOTO 90 
58 80 PRINT "P-jBD 
15 90 NORMAL ! IF KU = THEN 13 

5 
12 100 IF DL > THEN 123 



54 COMPUTEI March 1987 



M 115 VTflB 15: HTAB 29: PRINT " 

PICK DISCARD" 
IE 121 GOSUB 2200: VTftB 15: HTflB 

29: PRINT EW«: BOTO 130 
DC 123 BGSUB 2300 
21 130 C(DL,F) - KC:S(DL,F) = KS 

: BOSUB 1220 
Efl 135 X = B:Y = 13: GOSUB 9000 
M 140 GOSUB 2500: GDSUB 3000: I 

F (PW<0), > 9) OR <PW(1) > 
9) THEN 300 
71 150 X = 21:Y = 32:N = 0: GQBU 

B 1465 
M 151 X = 21 sY = 3S:N = 0: 6DSU 

B 14&S 
7D 200 X = 7:Y =- 32: N * PM(0): 6 

D5UB 1465 
(IB 205 X = 7:Y = 3B:N = PW ( 1 > : 6 

DSUB 1465 
111 210 DL = FN NP(DL): GOSUB 135 

5: GOTO 25 
BF 300 WT = 0: IF PW{1) > = 10 T 

HEN WT = 1 
EF 305 X = 7:Y = 29 + WT » 6;N = 

1: GOSUB 1465 
»1 310 X = 7:Y = 32 + WT t 6:N = 

PW(WT} - 10: GOSUe 1465 
FB 312 FOR I = 7 TO 9: VTAB I: H 

TAB 29: PRINT "<": NEXT 
CB 313 FDR DE = 1 TO 2000: NEXT 
Bl 320 GOSUB 1450: VTflB 14: HTAB 
29: INVERSE : PRINT " Y 

OU"; 
E7 321 IF WT = THEN PRINT " WI 

Nl 
11 322 IF WT = 1 THEN PRINT " LD 

SE " 

41 325 VTAB 2: HTAB 2: PRINT "PL 

AY AGAIN?" 

42 330 LO = 11:HI = 12:XP = 2:YP 

= 14: BOSUB 1910 
E9 340 IF AN = 11 THEN CALL 6245 

4: GOTO 10 
M 350 TEXT : HOME : END 
21 1000 HOME : HCDLOR= 3 
2D 1005 VTAB l! HTAB 29: PRINT " 

333333333333" 
BD 1010 VTAB 2: HTAB 29: PRINT " 

a EUCHRE 3" 
33 1015 VTAB 3: HTAB 29: PRINT " 

333333333333" 
fl 1025 VTAB 4: HTAB 29: PRINT " 

< POINTS ; " 
?2 1028 VTAB 18: HTAB 29: PRINT 

"< TRICKS ; " 
U 1030 VTAB 5: HTAB 29: PRINT " 

<YDU ; COMP; " 
F4 1040 FOR I = TO 4: VTAB 6 + 
I: HTAB 29: PRINT "< 
r ;": NEXT 
E3 1042 VTAS 11: HTAB 29: PRINT 

EW« 
F7 1043 VTAB 17: HTAB 29s PRINT 

EW« 
75 1050 VTAB 19: HTAB 29: PRINT 

"<YOU ; CDMP; " 
8t 1055 FOR I = TO 4: VTAB 20 

+ li HTAB 29: PRINT "< 
; ;"!! NEXT 
79 1060 HPLOT 198,40 TO 278,40 
99 1065 HPLOT 198,152 TO 278,152 

: HPLOT 198,191 TO 278,1 

91 
Bfl 1081 N = 0:X = 7:¥ = 32: 603U 

B 1465: Y = 38: BOSUB 146 

5 
!1 1082 X = 21:Y = 32: BOSUB 146 

5:Y = 3B! GOSUB 1465 
87 1090 GOSUB 1450 
IE 1095 RETURN 
39 1100 DIM C<3,4),3(3,4),MS(6,3 

) ,CL(7,3),DCt23),DS(23), 

SP(3,5) ,NS(3,5),ME»<15), 

NM»(9,2) 



BB 1102 DEF FN Bl(X) - NOT ( INT 

(X / 2) - X / 2) 
F5 1105 DEF FN NP(X) - (iX + 1) 
/ A ~ INT < (X + 1) / 4) ) 
t 4 
31 H10 BL« = "/././././. ":EW« = 

" 333333333333 " 
E4 1115 FOR I = TO 3: READ S» ( 
I): NEXT : DATA X&, ( ) , t+ 

B3 1120 FOR I = TO 6: READ NF ( 

I) : NEXT : DATA 4,0,1,2, 

3,4,0 
A9 1125 FDR I = TO 2: FOR J = 

TO 9: READ NM*(J,I): N 

EXT J, I 
9E 1127 DATA #3," 3" , >3, >3, =3, #> 

,tt>,#3,*3,#3 
CI 1128 DATA =3," 3" ,«>, >3, S3, >3 

, #3 , " 3 " , #3 , >3 
45 1129 DATA 33," 3", 33, 33," 3", 

33,33," 3", 33," 3" 
D3 1150 FOR J = TO 3: FOR I = 

TO 5:DC(J « 6 + I) - I 

:DS(J « 6 + n = J: NEXT 
I, J 
11 1161 FOR I = TO 3; READ PY ( 

U.PXCI): NEXT : DATA 13 

,14,7,8,13,2,19,8 
50 1165 FOR I = TO 3: READ CX ( 

I),CY<I): NEXT t DATA 18 

,13,11,5,4, 13,11,21 
311 1170 FOR I = TO 5: READ CP C 

I> ; NEXT : DATA 1,1,B, 1, 

2,-1 
B7 1175 FOR I = TO 13: READ ME 

»(!)! NEXT 
OF 1178 DATA " PASS "," ORDE 

R UP ", " PASS "," PIC 

K UP "," PASS "," DI 

AHONDS "," CLUBS 
14 1179 DATA " HEARTS " , " SPAD 

ES "," NORMAL ","ABBRE 

SSIVE"," YES "," NO "," 
YES " 
6F 1185 FOR I = TO 3: READ MX ( 

I),MY(I) ! NEXT : DATA 1, 

2,8,2,2,10,8,18 
ft4 1186 FOR I = TO 6: READ OB ( 

I>,OU(n,PU(l),MS(I,0>,M 

S ( 1 , 1 1 , MS ( I , 2) , MS ( 1 , 3) , Q 

A(I>: NEXT 
C5 1190 DATA 99,99,99,99,99,99,9 

9,99 
CD 1191 DATA 99,99,99,99,99,99,9 

9,99 
Bl 1192 DATA 99,99,14,14,14,13,1 

3,99 
82 1193 DATA 20,12,8,8,8,0,7,19 
B5 1194 DATA 14,0,0,0,0,0,0,16 
33 1195 DATA 0,0,0,0,0,0,0,14 
M 1196 DATA 0,0,0,0,0,0,0,0 
41 1199 RETURN 
C5 1200 IF (S = TP) AND (C = 6) 

THEN S-S+2:S- <S / 

4 - INT (S / 4)) « 4 
flfl 1201 CI = C: IF CI > 5 THEN C 

1-2 
9D 1202 CALL 36565, S « 6 + CI + 

1,Y«7-2,X*B 
D9 1210 RETURN 
21 1220 X = 20; FOR U = TO 4:Y 

=■ U « 4 + 5 
75 1225 C = C<0,U):S = S(0,U): S 

DSUB 1200: NEXT 
El 1230 RETURN 
11 1250 FOR I = TO 23iJ = INT 

( RND (1) t 243 :T - DC (I 

)!DC(I) = DC (J): DC (J) = 

T 
57 1260 T = DS(I):DS<I) = DS(J): 

DS(J) - T: NEXT 
71 1270 FOR J = TO 3! FOR I = 
TO 4 



AD 1275 C(J,I) = DC(J * 5 + I):S 
(J, I) - DS(J » 5 + I>: N 

EXT I,J:KC = DC(20):KS = 
DS(20) 
F5 12B0 RETURN 
2F 1300 INVERSE : VTAB 13: HTAB 

29: PRINT "FIRST BLACK" 

: VTAB 14: HTAB 30: PRIN 

T "JACK DEALS" 
CD 1320 NORMAL : BOSUB 1250: DL = 

0:CC = 
4B 1330 C = DC(CC):S = DS(CC):X 

= CX(DL):Y = CY(DLJ; BOS 

UB 1200 
5D 1331 FOR DE = 1 TO 500: NEXT 
35 1335 IF (DC(CC) = 2) AND ( FN 

B1(DS(CC))) THEN 1355 
41 1336 X = CX(DL>:Y = CY(DL): G 

OSUB 9000 
ID 1337 FOR DE = 1 TO 100: NEXT 
Ik 1340 CC - CC + 1:DL = FN NP<D 

L): GOTO 1330 
88 1355 GDSUB 1450: VTAB 12: HTA 

B 30 
T7 1356 INVERSE : IF DL = THEN 

1370 
2F 1360 PRINT " PLAYER "; STR* ( 

DL) 
« 1365 VTAB 13: HTAB 31: PRINT 

■■ DEALS"; : GOTO 1375 
4E 1370 PRINT "YDUR DEAL"; 
5E 1375 NORMAL : GOSUB 1400 
5! 1376 X = CX(DL):Y = CY(DL): G 

OSUB 9000 
F7 13B0 RETURN 
BC 1400 VTAB 15: HTAB 29: PRINT 

" HIT RETURN "; CHR* (7) 

45 1410 K - PEEK (49152): IF K > 

127 THEN POKE 49168,0 
67 1412 IF K < > 141 THEN 1410 
97 1415 GOSUB 1450 
E5 1430 RETURN 

E4 1450 FOR I = 12 TO 16: VTAB I 
I HTAB 29: PRINT EW*: NE 
XT ! RETURN 
EB 1465 FDR I = TO 2: VTAB X + 
I: HTAB Y: PRINT NM»(N, 
I ) : NEXT s RETURN 
E9 1500 FOR I = TO 3:SP(P, I) = 
FC( FN Bl (P) ):NS(P, I) - 
0: NEXT 
M 1505 FOR I = TO 4:S = S(P, I 
):C = C<P, 1) :SP(P,S) - S 
P(P,S) + CP(C)!NS(P,S) - 
NS(P,S) + 1 
50 1510 IF C = 2 THEN S = S + 2: 
S - (3 / 4 - INT (S / 4) 
) t 4sSP(P,S) = SP(P,S) 
+ 6:N9(P,S) = NS(P,3) + 
1 
El 1515 IF C = 5 THEN FOR J = 
TO 3sSP(P,J) = SP<P,J) + 
4: NEXT 
B3 1520 NEXT 

Ffl 1525 SS = 0: FDR I = TO 4: 
IF N3(P,I) » THEN SP(P 
, I) - 0:SS = SS + 1 
S5 1530 NEXT : FOR I = TO 3iSP 
(P, 1> = SP<P,I> + SS: NE 
XT 
79 1535 IF P < > DL THEN 1550 
34 1540 IF KC = 5 THEN SP(P,KS) 

= SP(P,KS) + 4 
BJ 1545 SP(P,KS) = SP(P,KS) + CP 
(KC):NS(P,KS) = NS(P,KS) 
+ 1 
EF 1550 RETURN 
57 1600 LO = 0:HI = 1:XP = 14: YP 

- 10: BOSUB 1910 
II 1605 IF AN = 1 THEN TP = KS 
El 1610 RETURN 

D7 1615 VTAB 14: HTAB B: PRINT " 
LONEHAND"; 



March 1987 COMPUni 55 



13 li.16 LO = 12:HI = 13:XP = 14: 
YP - ISi QOSUB 19101 LH » 
S) 
CE 1618 IF AN = 13 THEN LH = 1 : 
VTftB MX(BD)! HTflB MY(BD) 
; PRINT "LaNEHftND"j 
H 1619 VTAB 14: HTAB B: PRINT B 

L* 
E5 1620 RETURN 
E9 1625 LH = 0: IF SPCP,TP> > GA 

CNS(P,TP) ) THEN LH - 1 
E9 1630 RETURN 

15 1650 IF FN NP( FN NP(P)) = DL 
THEN QOSUB 1625iF - LHs 
GOTO 1685 
El 1654 F = 0: IF KC = 2 THEN GO 

TO 1660 
S^ 1655 IF SP(P,KS) > QU(NS(P,KS 

> ) THEN F - 1 
4D 1660 IF SPtP.KSI > DB(NS(P,KS 

)) THEN F - 1 
3* 1665 IF (F = 0) OR (P < > FN 

NP(DL)> THEN 16B3 
C6 1670 SB = CP(KC): IF KC = 5 T 

HEN SB - 3 
BE 1675 FDR I = TO 3: IF I < > 
KS THEN IF SP(P, I) > = 
(SP(P,KS> - SB) THEN F = 

CS 1680 NEXT 

7( 1685 IF F = 1 THEN TP = KS 
Id 1699 RETURN 
7» 1700 LO = 2rHI = 3: XP = 14: YP 

= 10: GOSUB 1710 
U 1705 IF AN = 3 THEN TP = KS 
E3 1710 RETURN 
K 1750 IF SP(P,KS> > PU(NS(P,KS 

) ) THEN TP = KS 
IC 1755 RETURN 
CD 1800 LO = 4:HI = 8: XP = 14: YP 

= 10; BOSUB 1910 
CI 1801 IF AN - 5 = KS THEN 1800 
BB 1805 IF AN > 4 THEN TP =■ AN - 

5 
E5 1810 RETURN 
12 1850 DF = 0: FOR I = TO 3: 

IF I = KS THEN 1B65 
?» 1S55 IF SP(P,I) - MS(NS(F,I), 

PS) < DF THEN 186S 
i« 1860 DF = SP(P,I) - MS(NS(P,I 

),PS):TP = I 
fl 1865 NEXT 
FD 1870 RETURN 

lb 1900 FOR I = 1 TO 3: FOR J = 
TO 2: VTAB MX < I ) + Js 
HTAB MY<I): PRINT BL* 
27 1905 NEXT J, I 
IC 1907 RETURN 
ID 1910 AN = LO 

S4 1915 XI = XP:Y1 = YP: FOR I = 
LO TO HI: NORMAL : IF I 
= AN THEN INVERSE 
Be 1925 VTAB XI: HTAB Yl: PRINT 
ME»(I) ; :X1 = XI + 1: NEX 
T 
El 1930 K = PEEK (49152): J " RND 
(1): IF K > 127 THEN PO 
KE 49168,0 
B3 1932 IF K < > 136 THEN 1940 
CD 1935 AN = AN - 1: IF AN < LO 

THEN AN = HI 
C7 1940 IF K < > 149 THEN 1950 
£F 1945 AN = AN + 1: IF AN > HI 

THEN AN = LO 
DC 1950 IF K < > 141 THEN BDTO 1 

915 
*2 1955 XI = XP:Y1 = YP: NORMAL 
: FOR I = LO TO HI: VTAB 
XI: HTAB Yl; PRINT BL«; 
:X1 = XI + 1: NEXT 
24 1965 RETURN 

14 2000 GOSUB 1250: GOSUB 1220:P 
= FN NP(DL);TP = 4:BD = 
0:KU = 



A3 2005 X » 8:Y = 13: C = KC: B = 

KS: BOSUB 1200 
71 2007 IF DL < > THEN VTAB MX 

(DL): HTAB MY(DL): PRINT 
" DEALER " 
44 2010 GOSUB 1500 
28 2015 IF P = THEN GOSUB 1600 

i GOTO 2040 
il 2016 IF ABS (P - DL) < > 2 TH 

EN 2020 
11 2017 BOBUB 1625: IF LH = 1 TH 

EN TP = KSi GOTO 2025 
74 2020 BOSUB 16S0 
Ff 2025 VTAB MX C) : HTAB MY(P) 
IC 2030 IF TP = 4 THEN PRINT " 

PASS "S GOTO 2040 
65 2035 BD = P: PRINT " ORDER UP 



72 


2040 P = FN NP(P): IF (P < > 




DL) AND (TP = 4) THEN 20 




10 


94 


2045 P = DL: GOSUB 1500: IF T 




P < > 4 THEN 2105 


ZH 


2050 IF DL = THEN GOSUB 170 




0: GOTO 2070 


fl 


2055 GOSUB 1750: VTAB MX(DL): 




HTAB MY(DL) 


EB 


2060 IF TP = 4 THEN PRINT " 




TURNED ": VTAB MX (DL) + 




1: HTAB MY(DL): PRINT " 




DOWN ": GOTO 2070 


E? 


2065 BD = P: PRINT " PICKED 




■'; VTftB MX(DL) + 1: HTA 




B MY(DL) : PRINT " UP 



34 2070 FDR DE = 1 TO 2000: NEXT 

44 2071 IF (BD = 0) AND (TP < > 

4) THEN 2105 

45 2072 X = 8:Y - 13: BOSUB 9000 

: IF TP < > 4 THEN 2105 
!? 2073 GOSUB 1900: PS = 
B2 2075 P = FN NP(P) 
CC 20B0 IF F = THEN GOSUB 1800 

: GOTO 2090 
O 2085 GOSUB 1S50: VTAB MX (P) : 

HTAB MY(P) 
B4 20B6 FOR DE = 1 TO 600: NEXT 
17 2088 IF TP = 4 THEN PRINT " 

PASS ";: GOTO 2090 
6E 2089 BD = P: PRINT ME*(TP + 5 

); 

FC 2090 IF (P < > DL) AND (TP = 

4) THEN PS " PS + 1: GOT 

O 2075 
98 2100 GOTO 2109 
BB 2105 KU = 1: IF (BD = 0) AND 

(DL ■= 2) THEN LH -= 1 : GO 

TO 2120 
4C 2109 IF TP = 4 THEN 2140 
48 2110 IF (LH = 1) AND (BD < > 

0) THEN 2120 
6S 2111 IF BD = THEN GOSUB 161 

5: GOTO .^40 
BA 2112 GOSUB 16U.5 
22 211S IF LH = THEN 2140 
3A 2120 VTAB 1: HTAB 2: PRINT "L 

ONEHAND" 
2fl 2140 FOR DE = 1 TO 2000: NEXT 
Bfl 2145 GOSUB 1900 
E9 2150 RETURN 
CB 2200 F = - 1 
B5 2205 F = F + 1: IF C(0,F) = - 

1 THEN 2205 
4ft 2210 B = F 
95 2215 X = (G « 4 + 5) * 7 - 5: 

Y = 158: XI = X + 22: Yl = 

Y + 27: HCOLOR= 1: HPLG 
T X,Y TO XI, Y TO XI, Yl T 
X,Yl TO X,Y 

IE 2218 X = (F » 4 + 5) « 7 - 5: 

Y = 158:X1 = X + 22:Y1 = 

Y + 27: HCOL0R= 3: HPLO 
T X,Y TO XI, Y TO XI, Yl T 
X,Y1 TD X,Y 



4t 2220 K = PEEK (49152): IF K > 

127 THEN POKE 49168,0 
89 2223 IF K = 141 THEN 2280 
E! 2225 O - F: IF K < > 136 THEN 

2250 
IB 2230 F = NF[F): IF C(0,F) < 

THEN 2230 
BB 2245 GOTO 2215 
£1 2250 IF K < > 149 THEN 2275 
3E 2255 F = NF (F + 2): IF C(0,F) 

< THEN 2255 
9C 2270 BDTO 2215 
M 2275 GOTO 2220 

89 2280 X = (G » 4 + 5) t 7 - 5: 
Y = 158: XI = X + 22: Yl = 
Y + 27: HCOLOR= 1: HPLO 
T X,Y TO XI, Y TO XI, Yl T 
D X,Y1 TO X,Y 
IF 2285 RETURN 

«F 2300 FOR I = TO 4; IF (S(P, 
I) = TP) AND (C(P, I) = 2 
) THEN C(P,I) - 7: GOTO 
2310 
FE 2305 IF ( FN B1(S(P,I)) = FN 
Bl (TP>) AND (C(P, I) = 2) 

THEN C(P, I) = 6iS(P, 1) 
= TP 
flC 2310 NEXT 

21 2315 FOR I = TO 4: FOR J = 
TD 3: IF S(P,J) > S(P, 
J + 1) THEN 2331 
ST 2320 IF 3(P,J) = S(P,J + 1) T 
HEN IF C(P,J) > C(P,J + 
1) THEN 2331 
DB 2325 T = C (P, J ) : C (P, J ) = C(P, 

J + 1) :C(P,J + n = T 
CB 2330 T = S(P, J) :S(P, J) = S(P, 

J + 1):S(P, J + 1) = T 
BB 2331 NEXT J, I 

A3 2335 FOR I = TO 4:PT(I) = 
: IF S{P, I) = TP THEN PT 
(I) = C(P, I) / 10: GOTO 
2350 
H 2340 IF C(P,I) = 5 THEN PT ( I ) 

» 9: GOTO 2350 
H 2345 IF (S(P,I) < > S(P,NF(I) 
) ) AND (S(P, I) < > S(P,N 
F(I + 2) ) ) THEN PTd) = 
- 1 
BC 2350 NEXT 

F4 2355 L = 99: FOR I = TD 4: 
IF PT ( I ) < L THEN F = I : 
L = PTCl) 
4A 2360 NEXT : RETURN 
7C 2500 FOR I = TO 3: FOR J = 
TO 3:NS(I,J) = 0: NEXT 
: FDR J = TO 4: IF C( 
I, J) < > 2 THEN 2515 
FF 2505 IF S(I,J) = TP THEN C(I, 

J) = 7: GOTO 2515 
52 2510 IF ABS (S(I,J) - TP) =2 
THEN C(I,J) = 6:S(1,J) 
= TP 
fll 2515 NS(I,S(I,J)) = NS(I,S(I, 

J) ) +1: NEXT J, I 
E4 2520 RETURN 

iS 2700 VTAB 2: HTAB 2: PRINT "P 
ARTNER?"; :L0 = 9:HI = 10 
sXP = 2sYP = 12: GOSUB 1 
910 
43 2705 FC«0) = 0: IF AN = 10 TH 

EN FC(0) = 2 
71 2710 VTAB 2: HTAB 2: PRINT "O 
PPDNENTS?"; :L0 = 9:HI = 
10: XP = 2;YP = 14: GOSUB 
1910 
CE 2715 FC(1) ■= 0: IF AN = 10 TH 

EN FC(1> =2 
85 2720 VTAB 2: HTAB 2: PRINT BL 

«: RETURN 
F9 3000 FOR I = TO 7: FOR J = 
TO 3;CL(I,J) = 0: NEXT 

J, I:CL(2, FN Bl (TP) ) = 
1 



56 COMPUTEI March 1987 



TO 3:SL(I) 



DM = 4:TR 
IF LH 

= 20: F 
I t 4 
NEXT 



n 3001 FOR I = 

: NEXT I 
4E 3002 LD = FN NP(DL) 

(0) = 0:TR<1) = 
= THEN 3015 
2B 3005 IF BD = 2 THEN X 

OR I = TO 4:Y = 

+ 5: GOSUB 9000 
BA 3010 DM = FN NP ( FN NP (BD) ) 
M 3011 IF LH = 1 THEN IF LD = D 

M THEN LD = FN NP(LD> 
F5 3015 FOR TK = TO 4:P = LD:P 

S = 0:TL = 0! IF DM - P 

THEN P - FN NP(P) 
EE 3020 GOSUB 3500; MP = P: IF LH 

= 1 THEN PS - PS + 1 
B7 3021 SL<S(P,PC(P))) = 1 
7F 3025 IF S(P,PC(P)) = TP THEN 

TL = 1 
F5 3030 FOR I = 1 TO 3: P = FN NP 

(P> : IF P = DM THEN 3060 
49 3035 PS = PS + Is GOSUB 3500: 

IF TL = THEN 3050 
B9 3040 IF S(P,PC(P)) = TP THEN 

IF C(P,PC(P>) > C(WP,PC( 

WP> ) THEN WP = P 
9E 3045 GOTO 30i0 
H 3050 IF S(P,PC(Pn = TP THEN 

WP " PsTL = 1: GOTO 3060 
96 3055 IF S(P,PC(P)) = S(WP,PC( 

WP) > THEN IF C(P,PC(P)) 

> C (WP, PC (WP)) THEN WP = 
P 
iF 30i0 NEXT I FOR DE = 1 TO 400 

! NEXT 
IE 3065 FOR J = 1 TO 15s FOR I = 
3 TO 1 STEP - 1:Y - PX C 

WP) » S - 2:X = PY(WP) « 
7 - 5:X1 = X + 22: Yl = 

Y + 27 
27 3070 HCDLOR= 1: HPLOT X , Y TO 

XI, Y TO XI, Yl TO X,Y1 TO 
X,Y; FOR DE - 1 TO 5: N 

EXT DE, I,J 
Efl 3071 LD = WP:WT = FN B1(WP):T 

R(WT) - TR(WT) + 1 
BB 3072 X = 21:Y = 32 + 6 * WTrN 

» TR(WT>: GOSUB 1465 
«F 3075 FDR I = TO 3: X = PX ( I ) 

:Y » PY(I)s GOSUB 9000: C 

<I,PC<n) = - l! NEXT I, 

TK 
*2 3078 VTAB 1: HTAB 2: PRINT BL 

S 
it 3080 BT = FN Bl(BD): VTfiB 15: 

HTflB 29 
H 3085 IF TR(BT) < 3 THEN 310B 
F4 30B6 IF TR(BT) < S THEN 3097 
flF 3087 PW(BT) = PW(BT) + 2 + LH 

* 2 
E5 3090 IF BT = THEN PRINT " 

YOU WON '■: VTAB 16! HT 

AB 29: PRINT " PiLL TRICK 

S ": GOTO 3200 

25 3095 IF BT = 1 THEN PRINT "CO 

MPUTER WON": VTAB 16: HT 

AB 29: PRINT " ALL TRICK 

S ": GOTO 3200 
68 3097 PW(BT) = PW(BT) + 1 
17 3100 IF TR(0) > 2 THEN PRINT 

"YGU WON HAND";: GOTO 32 

00 
!l 3105 IF TR(1) > 2 THEN PRINT 

" COMPUTER "! VTAB 16: 
HTAB 29: PRINT " WON H 

AND ": GOTO 3200 
3fl 310B PWCl - BT) = PWd - BT) 

+ 2 
on 3110 IF TR(0) < 3 THEN PRINT 

"YOU'VE BEEN": VTAB 16s 
HTAB 29: PRINT " EUCHR 

ED! ■': GOTO 3200 
B5 3115 IF TR(1) < 3 THEN PRINT 



" COMPUTER "i VTAB 16: 
HTAB 29: PRINT " EUCHR 



ED ! 
5D 3200 FOR DE 



1 TO 4000s NEXT 



THEN 3509 
HTAB 29: PRINT 
QOSUB 2 



FF 3205 RETURN 
FE 3500 IF P > 
92 3502 VTAB 15: 

" YOUR PLAY 
200 
13 3503 LS = S(LD,PC(LD)): IF (P 
S = 0) OR (S(P,F) = LS) 
OR (NS(P,LS) = 0) THEN 3 
507 
5D 3504 GOSUB 2215: GOTO 3503 
fll 3505 X = 20:Y = F » 4 + 5i GO 

SUB 9000: GOTO 3S30 
II 3507 VTAB 15: HTAB 29: PRINT 

EW* 
B9 3508 X = 20: Y = F » 4 + 5: GO 

SUB 9000: GOTO 3530 
ID 3509 IF TK < 5 THEN 3515 
C2 3510 FOR K s TO 4: IF C(P,J 

) > - 1 THEN F = I 
5D 3512 NEXT : GOTO 3530 
3E 3515 ON (PS + 1) GOSUB 4000,4 

100,4200,4200 
5B 3530 PC(P) = F:Y = PY(P):X = 
PX(P):C = C(P,F):S = S(P 
,F): GD3UB 1200 
7C 3533 NS(P,S(P,F)) = NStP.SCP, 
F)) - 1;CL(C(P,F) ,S(P,F) 
> - 1 
ED 3540 RETURN 
72 4000 IF NS(P,TP) < > 5 - TK T 

HEN 4015 
7D 4005 SP = TP: GOSUB 5200: IF 

F = 1 THEN GOTO 5150 
if 4010 60T0 5160 
17 4015 IF (LH < > 1) OR (BD < > 

P) THEN 4030 
15 4020 IF NS{P,TP) > THEN SP 

= TP: GOTO 5150 
93 4025 GOTO 5050 

D4 4030 BOSUB 5000: IF {F = 1) A 
ND ( ABS (BD - P) = 2) T 
HEN SP = TP: GOTO 5150 
6C 4035 GOSUB 5250: IF (F < > 1) 
OR (P < > BD) THEN 5050 
F4 4040 GOSUB 5200: IF I = 1 THE 

N SP = TP: GOTO 5150 
47 4045 IF NS(P,TP) > 2 THEN SP 

= TP: GOTO 5160 
79 4050 GOTO 5050 
EE 4100 IF NS(P,S(LD,PC(LD) ) ) = 

THEN 4115 
53 4105 GOSUB 5300: SP = S(LD,PC( 

LD) ) : IF F = 1 THEN 5150 
71 4110 GOTO 5160 
CB 4115 IF NS(P,TP) = 5 - TK THE 

N SP = TP: GOTO 5160 
33 4120 IF NS(P,TP) = THEN 510 


4£ 4125 IF C(LD,PC(LD)) = 5 THEN 

SP = TP: GOTO 5160 
E7 4130 IF BD < > P THEN SP = TP 

: GOTO SI 60 
18 4135 GOSUB 5230: IF F = 1 THE 

N SP = TP: GOTO 5160 
45 4140 GOTO 5100 
73 4200 IF NS(P,S(LD,PC(LD))) = 

THEN 4235 
ft* 4201 SP = S(LD,PC(LD)) 
2C 4205 IF (SP < > TP) AND (TL = 

1) THEN 5160 
•F 4210 IF ABS (WP - P) < > 2 TH 

EN 4225 
»D 4215 GOSUB 5300: IF F = 1 THE 
N GOSUB 5350: IF F = T 
HEN 5130 
77 4220 GOTO 5160 
n 4225 GOSUB 5300: IF F = 1 THE 

N 5150 
7B 4230 GOTO 5160 
FE 4235 IF NS(P,TP) < 5 - TK THE 



N 4270 
flS 4245 SP = TP: IF ABS (WP - P) 

= 2 THEN 5160 
54 4250 IF TL = THEN 5160 
9C 4255 GOSUB 5300: IF F = 1 THE 

N 5400 
87 4260 GOTO 5160 
49 4270 IF NS(P,TP) = THEN 510 


[4 4275 IF ABS (WP - P) < > 2 TH 

EN 4310 
SE 4280 IF (TL = 1 ) OR (PS = 3) 

THEN 5100 
Jft 4285 IF C(WP,PC(WP)) = 5 THEN 

5100 
24 4290 IF C(WP,PC(WP)) < 4 THEN 

SP = TP: GOTO 5160 
18 4300 GOSUB 5250: IF F = 1 THE 

N SP = TP: GOTO 5160 
81 4305 GOTO 5100 
53 4310 IF TL = THEN SP = TP: 

GOTO 5160 
Ffl 4315 GOSUB 5300: IF F = 1 THE 

N SP = TP: GOTO 5400 
61 4320 BDTD 5100 
45 5000 F = 0: FOR A = TO 4: I 

F C(P,A) > 5 THEN F = 1 
57 5003 NEXT : RETURN 
BF 5050 F = - 1: FOR A = TO 4: 
IF (SL(S(P,A)) = 0) AND 
(S(P,A) < > TP) THEN IF 
C(P,A) = S THEN F = A 
45 5055 NEXT : IF F > - 1 THEN 5 

070 
ID 5060 LC = - 1: FOR ft = TO 4 
: IF S{P,A) < > TP THEN 
IF C(P,A) > LC THEN LC = 
C(P,A) :F = A 
E5 5065 NEXT 
Fl 5070 RETURN 
4F 5100 IF NS(P,TP) > THEN 512 

5 
JC 5105 SP = - 1: FOR A = TO 4 
as 5110 IF S(P,A) < > TP THEN IF 
(C(P,A) = 5) AND (NS(P, 
S(P,A) ) > 1) THEN SP = S 
(P, A) 
»F 5115 NEXT A: IF SP > - 1 THEN 

5160 
7E 5120 GOTO 3180 
E3 5125 V = 4:F = - 1: FOR A = 

TO 4 
28 5126 IF S(P,A) = TP THEN 5135 
ED 5130 IF (NS(P,S(P,A) ) < > 1) 
OR (SL(S(P,A)) = 1) THEN 
5135 
ZC 5131 IF (C{P,A) > = 0) AND (C 
(P,A) < V) THEN V = C(P, 
A):F = A 
7F 5135 NEXT : IF F = - 1 THEN 5 

180 
E7 5140 RETURN 
D7 5150 IF PS = 3 THEN 5400 
BF 5151 V = - 1: FOR A = TD 4: 
IF SCP.A) = SP THEN IF 
C(P,A) > V THEN V = C(P, 
A):F = A 
4D 5155 NEXT : RETURN 
25 5160 V = 10: FDR A = TD 4 
9E 3161 IF S(P,A) = SP THEN IF ( 
C(P,A) > = 0) AND (C(P,A 
) < V) THEN V = C(P,A) :F 
= A 
n 5163 NEXT : RETURN 
15 51 B0 V = 10: FOR A = TO 4: 
IF S{P,A) < > TP THEN IF 
C(P,A) > - 1 THEN IF C( 
P,A) < V THEN V = C(P,fl> 
:F = A 
C4 5183 NEXT A: RETURN 
IB 5200 HT = 8:F = 
43 5205 HT = HT - 1: IF HT > T 
HEN IF CL(HT,TP) = 1 THE 
N 5205 



March 1987 COMPUTCI 57 



M 5210 


IF HT < THEN 


5240 






BE20: 80 BE E6 E6 E6 E6 BE 80 49 


90Ca: 


12 16 lA IE 02 06 0A 


0E E7 


Fl 5215 


FOR A = TO 4 


: IF S(P, 


A 


8E28! 80 FE 86 86 BE 86 FE B0 0D 


9000: 


12 16 lA IE 03 07 0B 


0F FE 




) = TP THEN IF 


C(P 


,A) 


= 




BE30: 80 FE B6 86 BE 86 86 80 24 


9008: 


13 17 IB IF 03 07 0B 


0F F7 




HT THEN F = 1 










8E3B: 80 BC E6 B6 F6 E6 BE 80 5B 


90E0: 


13 17 IB IF A9 00 80 


OB EA 


ei 5220 


NEXT 










8E40: 80 E6 E6 E6 FE E6 E6 B0 84 


90EB: 


91 SO DC 91 20 55 91 


C0 25 


E9 5240 


RETURN 










8E48S B0 98 98 98 98 98 98 80 41 


90F0: 


01 90 12 F0 01 60 C9 


IB 3D 


85 5250 


F = 1 : FOR A = 





TO 


4: 


I 


8E50: 80 E0 E0 E0 E0 E6 BC 80 AC 


90F8i 


90 01 60 A9 24 BD OB 


91 E9 




F C(P,A) > - 1 


THEN IF 




BESS: 80 E6 E6 B6 9E E6 E6 80 96 


9100: 


A9 04 BD DC 91 8D 11 


91 EE 




S(P,A) < > TP) 


AND (C(P, 




BE60: 80 86 86 86 86 86 FE 80 65 


9108: 


A9 00 BD DF 91 A2 04 


IB E6 




A) < 5) THEN F 


= 






8E6B: 80 E6 FE E6 E6 E6 E6 80 EE 


9110s 


69 00 6A 6E DF 91 4A 


6E 64 


iF 525S 


NEXT : RETURN 










8E70: 80 BE E6 E6 E6 E6 E6 80 E9 


9118: 


OF 91 4A 6E DF 91 CA 


D0 6B 


(11 S30e 


F = 0: FDR A = 


= 


TO 


4: 


I 


8E7B: 80 BC E6 E6 E6 E6 BC B0 ID 


9120s 


EE A A AD DF 91 2A 2A 


2A CC 




F SfP.ftt = S(WP,PC(WP) ) 




BE80: B0 BE E6 E6 BE 86 86 80 76 


9128: 


2A 29 07 C9 07 00 03 


A9 53 




THEN IF C(P,A) 


> CCWP.PC 1 


8E8B: 80 BC E6 E6 E6 B6 EC 80 CC 


9130: 


00 E8 18 60 DC 91 C9 


07 2F 




(UP) ) THFN F = 


1 








8E90: 80 BE E6 E6 BE E6 E6 80 C8 


913B: 


90 03 A9 00 E8 BO DC 


91 62 


50 5303 NEXT : RETURN 
DB S350 F = 0! FOR A = 










BE9B: 80 BC E6 BC B0 E6 BE 80 E9 


9140; 


8A IB 6D DB 91 BD OB 


91 26 


= 


TD 


4; 


I 


8EA0: 80 FE 98 98 98 98 98 B0 33 


914SS 


60 20 55 91 80 04 91 


SD D7 


1^1^ ^ji^^jL' '■' — -— -- 


F S(P,A) = S(WP.PC(WP)) 




SEAS: 80 E6 E6 E6 £6 E6 BE 80 DB 


9150: 


DD 91 C9 C0 60 20 Bl 


00 F2 




THEN IF C(P.A) 


- CfWP.PC 1 


BEB0: 80 E6 E6 E6 E6 E6 98 80 97 


9158! 


20 05 El A5 Al A4 A0 


60 A4 




(WP) ) = 1 THEN 


F = 


= 1 






8EB8: B0 E6 E6 E6 E6 FE E6 80 9C 


9160: 


7F 7F 5F 57 55 57 5F 


7F CA 


71 533: 
Fl 540!; 
83 540; 


5 NEXT : RETURN 

5 D = 10: FDR A 

5 IF S(P,A) = S 

THEN E = C<P,I 

PC(WP)): IF (E 

(E > 0) THEN D 










SEC0! 80 E6 E6 E6 BC E6 E6 80 F2 


9168: 


7F 7F 47 47 01 01 47 


7F A2 


(WP 
=1) 

< 
= 


J TO 4 

PC(WP) ) 
_ r ' UP 


SECS: 80 E6 E6 E6 BC 98 98 80 25 
aED0! 80 FE B0 98 BC 86 FE 80 8A 
8ED8: 20 D0 8F B0 7E 20 E4 90 06 


9170: 
9178: 
9180: 


7F 7F 77 55 55 57 5F 
7F 7F 5F 07 01 01 0F 
7F 7F 7F 7E 7A 7E 7F 


7F BD 

7F 41 

7F 67 




D) 
E:F 


AND 


1 


8EE0: B0 79 20 49 91 B0 74 AD 33 


9188: 


7F 7F 7F 7F 7E 7E 7F 


7F 9F 




A 


BEES: D9 91 F0 0F A9 7F 8D E0 AD 
BEF0: 91 80 El 91 A9 07 8D E2 F6 


9190: 
9190: 


7F 7F 7E 7A 7A 7E 7F 
7F 7F 7F 7E 78 78 7F 


7F 17 
7F 57 


!B 5410 NEXT : RETUKN 










BEFS: 91 D0 0F A9 2A 8D E0 91 6A 


91A0: 


63 IC IC IC 03 IF IC 


63 Fl 


♦i 9000 CALL 3656B,0, 


y « 


7 


- 1 


,x 


SF00: A9 55 80 El 91 A9 02 BD DD 


91AS: 


40 73 73 73 73 73 73 


73 32 




s o; nt I urtH 










8F08: E2 91 A9 03 80 D0 91 A9 DE 
BF10: 02 BD D7 91 AO OC 91 80 39 
BF18: D6 91 AO DB 91 BD DS 91 7A 


91B0: 
91BB: 

91C0: 


IF IF IF IF IF IF IC 
63 IC IC IC IC 10 44 
IC IC IC 60 IC IC IC 


63 12 
13 96 
IC 28 


Program 4: Graphics File For 
Apple Euchre 

Refer to the instructions in ttie article before 


8F20: 20 EO SF A9 18 80 01 91 83 
aF2B: 20 7C 90 20 40 90 EE D4 81 


91C8: 


63 49 IC IC 00 IC IC 


50 2E 


8F30: 91 CE Dl 91 D0 F2 AD D9 A6 
8F3a: 91 F0 20 A0 00 AD DA 91 68 


Program 5: IBM PC/PCjr 




entering 


this iising. 










BF40: 20 6C 8F A0 04 AD DA 91 A4 


Euchre 
















BF4a: 20 6C SF A0 08 AD 09 91 CA 








SCAB: 


DB 78 85 45 86 


46 


84 


47 


EE 


aF50: 20 6C 8F A0 0C AD D9 91 F2 


NJ 5 KEY OFFlDEF SEG=0:DEFINT A- j 


8CB0: 


A6 07 0A 0A B0 


04 


10 


3E 


B4 


BF5B! 20 6C BF 60 60 91 03 03 Fl 


Z 


:POKE 104 7, PEEK (1047) 


OR 6 


BCBS: 


30 04 10 01 E8 


EB 


0A 


86 


82 


8F60: 80 91 0A 08 98 91 01 01 F3 


4 


: RANDOMIZE TIMER 




BCC0: 


IB 18 65 06 85 


lA 


90 


02 


32 


aF68: 98 91 0A 0F 0A 0A 0A BD 84 


t.P 10 


BDSUB 1100: GOSUB 1000 


:BOSU 


BCCS: 


E6 IB A5 2B B5 


08 


A3 


29 


14 


8F70: DE 91 B9 5C SF 85 FC C8 B5 




B 2700:6DSUB 1300 




BCD0: 


29 03 05 E6 85 


09 


A2 


0B 


EB 


8F7B: B9 5C 8F 85 FD CB AD OB 20 


nil 25 


GOSUB 2000: COLOR 1,7 




BCDB: 


A0 00 Bl lA 24 


32 


30 


02 


66 


8Fa0: 91 8D 05 91 B9 5C BF C8 C6 


fC 30 


IF TP04 THEN 70 




eCE0: 


49 7F A4 24 91 


08 


E6 


lA 


E9 


BF88: 18 6D DC 91 C9 07 90 07 56 


f>a 35 


LOCATE 12,29:PRINT "NO BID | 


aCEBt 


D0 02 E6 IB A5 


09 


18 


69 


64 


BF90: E9 07 EE D5 91 B0 F5 BD 6A 




DERS" 




8CF0: 


04 85 09 CA D0 


E2 


A5 


43 


DD 


aF9B: D6 91 B9 5C BF 18 6D DD lA 


BP 40 


LOCATE 13, 28: PRINT "HAND | 


SCF8: 


A6 46 A4 47 58 


4C 


F0 


FD 


03 


8FA0: 91 BD 04 91 A9 01 BD D0 DC 




DUMPED" 




BD00: 


00 00 00 00 00 


00 


00 


00 


IB 


8FAB: 91 A9 07 8D D7 91 A9 08 15 


a 50 


GOSUB 1400:X=20:FOR I 


=0 TO 


BD08: 


00 30 30 30 30 


00 


30 


00 


lA 


8FB0: 80 Dl 91 AC DE 91 Bl FC A5 




4 :Y= I* 5+3: GOSUB 9000 


:NEXT 


8D10: 


00 00 00 00 00 


00 


00 


00 


2B 


SFBB: 80 E0 91 20 ED 8F 20 7C 75 




I 




BDIS: 


FF FF FF FF 87 


87 


87 


87 


24 


BFC0: 90 20 40 90 EE 04 91 EE IE 


EP 51 


DL=FNNP(0L):X=8:Y=13: 


GOSUB 


8D20: 


87 87 87 87 FF 


FF 


FF 


FF 


4A 


BFC8: DE 91 CE Dl 91 D0 E4 60 AC 




9000 




8D28: 


00 00 40 50 54 


50 


40 


00 


B4 


aFO0: 20 55 91 C9 19 90 01 60 91 


Bft 55 


GDSUB 1900: GOTO 25 




8030: 


00 00 00 02 0A 


02 


00 


00 


C3 


BFDB: A2 00 SE DA 91 C9 07 90 IB 


LO 70 


COLOR 9, 7: LOCATE 12,2 


9:PRI 


8038: 


00 18 0C 00 00 


00 


00 


00 


DA 


8FE0: 07 E9 06 EE DA 91 B0 F5 22 




NT "TRUMP : "; : COLOR 


CO(TP 


8D40i 


00 00 60 60 78 


78 


60 


00 


D3 


SFEB: BD 09 91 18 60 AD D0 91 E5 




):PRINT S*(TP):CaLOR 


9 


eD4B: 


00 00 01 01 07 


07 


01 


00 


E9 


BFF0: 80 02 91 AS A9 00 99 E0 A9 


JE 75 


LOCATE 13, 29: PRINT "BIDDER 


8D50: 


00 00 10 54 54 


50 


40 


00 


17 


BFFa: 91 AD D6 91 18 6D D7 91 F7 




: ";:IF BO=0 THEN PRINT "y 


8DS8: 


00 00 02 0A 0A 


02 


00 


00 


AC 


9000: C9 07 90 05 E9 07 EE D2 46 




ou";:QDTO 90 




BD60: 


00 00 40 70 7C 


7C 


60 


00 


21 


9008: 91 8D DB 91 AD E0 91 09 A6 


ia 80 


PRINT "p";RIGHT*(STR*(BD) , I 


8068: 


00 00 00 03 0F 


0F 


01 


00 


6A 


9010: 7F 80 03 91 AC 06 91 F0 BC 




1) 




8D70! 


2A 2A 2A 2A 2A 


2A 


2A 


2A 


8B 


901B: 15 A2 00 0E E0 91 BD E0 F6 


BL 90 


IF KU=0 THEN 135 




8078: 


55 55 55 55 55 


35 


55 


55 


93 


9020: 91 0A 3E El 91 EB EC 02 4F 


DF 100 IF DL>0 THEN 125 




8DB0: 


B0 BC E6 F6 EE 


E6 


BC 


80 


64 


9028: 91 00 F3 88 D0 EB AC D2 AF 


W. 115 COLOR 14,0:LDCATE 15 


,2S:P 


8088: 


80 98 9C 9B 98 


98 


BC 


80 


48 


9030: 91 B9 E0 91 09 80 2D D3 36 




RINT "PICK DISCARD" 




8090: 


80 BC E6 B0 BC 


E6 


FE 


80 


81 


903B: 91 99 E0 91 BB 10 F2 60 BB 


C6 12 


1 BDSUB 2200: LOCATE 15 


,28:P 


8098: 


80 BC E6 B0 E0 


E6 


BC 


80 


A7 


9040: AC 08 91 B9 6E 90 AC D2 90 




RINT " "; 


:GQTD 


80 A0: 


80 B0 BB B4 FE 


B0 


B0 


S0 


27 


9048: 91 B8 31 FE 19 E0 91 91 6B 




130 




80 AB: 


B0 FE Bb BE E0 


E6 


BC 


80 


ID 


9050: FE 88 30 0A F0 08 B9 E0 B3 


flr 125 GOSUB 2300 




8DB0: 


80 BC 86 BE E6 


E6 


BC 


80 


C4 


9058: 91 91 FE 88 00 FB AC 06 A9 


HJ 130 C(DL,F>=KC:S(DL,F)=KS:GOS | 


8DBS: 


80 FE E0 B0 9B 


BC 


ac 


80 


SB 


9060: 91 B9 75 90 A0 00 31 FE D6 




UB 1220 




BDC0: 


80 BC E6 BC E6 


E6 


BC 


80 


C0 


9068: 0D E0 91 91 FE 60 7F 7E BA 


61 135 X=8:V = 13:G0SUB 9000 




8DC8: 


B0 BC E6 E6 FC 


B0 


98 


80 


FA 


9070: 7C 78 70 60 40 00 01 03 09 


?P 140 BDSUB 2500:6OSUB 3000: COL | 


BDD0: 


80 80 BC 80 80 


ac 


80 


80 


9D 


9078: 07 0F IF 3F AD 04 91 29 C5 




OR 0,4: IF (PW(0)>9) 


DR (P 


8DDB: 


F0 F0 F0 F0 F0 


F0 


F0 


F0 


F3 


9080: 3F A8 B9 A4 90 05 E6 B5 DB 




W(l) >9) THEN 300 




BDE0! 


83 83 83 83 83 


83 


83 


83 


FB 


9088: FF AD D4 91 29 08 F0 02 16 


t\ 150 X=21:Y-31:N=0:BOSUB 


1465 


BDEe: 


87 87 87 87 B7 


87 


87 


87 


04 


9090: A9 80 18 2C D4 91 70 04 3E 


PJ 151 X = 21:Y=37:N=0: GOSUB 


1465 


8DF0: 


7F 7F 7F 7F 00 


00 


00 


00 


93 


9098: 10 04 69 28 69 28 60 05 0F 


BK 200 X = 7:Y=31:N=PW<0): GOSUB 14 


BDF8: 


80 BC E6 B0 98 


80 


98 


80 


E3 


90A0: 91 85 FE 60 00 04 0B 0C FD 




65 




8E00: 


FF FF FF FF FF 


FF 


FF 


FF 


ID 


90AB: 10 14 IB IC 00 04 08 0C C7 


«£ 205 X=7:V=37:N=PW(1):G0SUB 14 


BE0a: 


80 FC E6 E6 FE 


E6 


E6 


80 


Dl 


90B0: 10 14 18 IC 01 05 09 00 DE 




65 




8E10! 


80 BE E6 E6 BE 


E6 


FE 


80 


78 


90B8: 11 15 19 ID 01 05 09 00 D7 


BH 210 DL=FNNP(OL): GOSUB 1355: GD 


SEIS: 


80 BC E6 86 86 


E6 


BE 


80 


B7 


90C0: 11 15 19 ID 02 06 0A 0E EE 




TO 25 





5e COMPUTEt Morch 1 987 



LL 300 WT=0: IF PW(1)>=I0 THEN UIT 

= 1 
PD 305 X=7: Y-2S+WT«6:N=1:GDSUB 1 

465 
KL 310 X=7: Y=31+WT*6:N=PW:WT)-10 

:60SUB 1463 
BC 315 FOR DE=1 TO 1000: NEXT 
JF 320 GDSUB 1450: COLOR 0,4:LDCA 

TE 13,28:PRINT " yoU"; 
SO 321 IF WT=0 THEN PRINT " WIN! 

Oft 322 IF WT=1 THEN PRINT " LOSE 

JO 323 COLOR 7, l:LOCflTE 2,2:PRIN 

T "Play again?" 
LL 330 LO=11:HI = 12:XP=2:YP=14:60 

SUB 1910 
EJ 340 IF AN=11 THEN RUN 
LP 350 PRINT CHR«(125) :END 
Ef 1000 SCREEN 0,1: WIDTH 40: COLO 

R ,1,7:CLS 
LB 1005 COLOR 0,6: LOCATE 1,28,0: 

EH 1010 LOCATE f}%-VWfMf^l EU 

CHRE I" 
CH 1015 LOCATE 3,28:PRINT 

ftp 1025 (TcIl'cM 1 0, 0: LOCATE 4,2B:P 

RINT •' POINTS " 

[J 102B LOCATE 18, 28: PRINT " T 

RICKS " 

f£ 1030 COLOR 2,0: LOCATE 5, 28: PR 

INT " YOU COMP " 
in 1040 FOR 1=0 TO 4: LOCATE 6 + 1, 

2B:PRINT " ": 

NEXT 
PI 1042 COLOR 5, 7: LOCATE 11,2B:P 

RINT " 
0". L043 LOCATE 17,2a:PRINT " 

]F 1050 COLOR 2,0: LOCATE 19,2a:P 

RINT " YOU COMP " 
HJ 1055 FOR 1=0 TO 4:LDCATE 20+1 

,28: PRINT " 

; : NEXT I 
^; 1060 FOR 1=0 TO 5:L0CATe 19+1 

,33:PRINT"J";:NEXT 
!H 1070 FOR 1=0 TO 5: LOCATE 3 + 1, 

33:PRINT"J-'; :NEXT 
CD 10ai COLOR 0,4:N=0:X = 7:Y=31:B 

OSUB 1465: Y=37: GDSUB 146 

5 
PL 1082 X=21:Y=31: GDSUB 1465: Y=3 

7:0DSUB 1465 
);S 1090 GQSUB 1 450: COLOR 7,1: RET 

URN 
DS 1100 DIM C(3,4> ,S(3,4) ,MS(6,3 

),CL(7,3) ,DC(23),DS(23) , 

SP(3,5) ,NS<3,5) ,MES(15) 
JP 1105 DEF FNNP(X) = ( (X + l)/4-INT 

i (X + l)/4) )»4 
Bfl 1110 BL«=SPACE«( 10) :C«="9 10J 
(3 p; A J J 910 J Q K A 

J J" 
tS 1111 T»=SPACe«(4) :CD*=CHR*(31 

) : CLt=CHRl ( 291 : NL«=CD*+S 

TRING«(4,29) 
M 1112 N*(0) = " 3 ■ ■ J ■ ^ 
■■:N«(1)=J5 ■ ■ ■ 
3 - '■:N*(?)"" T 

1 3 

KD 1115 RESTORE 11 15: FDR 1=0 TO 
3: READ S, CO CI ) : S» ( I ) =CHR 
«(S):NEXT:DATA 4,4,5,0,3 
,4,6,0 

6Q 1120 RESTORE 1120: FOR 1=0 TO 
6: READ NF CI ): NEXT: DATA 4 
,0,1,2,3,4,0 

PB 1150 FOR J = TO 3: FOR 1=0 TO 
5:DCCJ*6+I)=I:DSCJ*6+n = 
J: NEXT I, J 

n£ 1161 RESTORE 1161: FOR 1=0 TO 
3: READ FY C I ) , PX C I ) : NEXT: 
DATA 13, 14,8,8, 13,2, IB, 8 

M 1165 RESTORE 1165: FOR l~0 TO 



3: READ CX C I ) , CY ( 1) : NEXT: 

DATA 18,12,11,5,4,12,11, 

19 
JK 1170 RESTORE 1170: FOR 1=0 TO 

5: READ CP C I ) : NEXT: DATA 1 

,1,8,1,2,-1 
OP 1175 RESTORE 11 78: FOR 1=0 TO 

13: READ ME* C I J : NEXT: MES C 

5)=CHR» C4)+ME«{S) :riE*(6) 

=CHRSC5)+riESC6) :ME*C7)=C 

HR*(3)+ME*(7) :ME*CS)=CHR 

4<6)+ME*Ca) 
in 1178 DATA "pass ", "order u 

p","pass ","pick up"," 
PASS "," diamonds", 

" clubs "," hearts ", 

" spades ", "normaj ", "ag 

gressi ve", "yes", "no ","y 

es" 
IF 1185 RESTORE 1185: FOR 1=0 TO 

3: READ MX C I ) , MY { I ) : NEXT: 

DATA 1,1,8,4,2,12,8,20 
C£ 11B6 RESTORE 11 90: FOR 1=0 TO 

6: READ DB C I ) , OU 1 1 ) , PU C I ) 

, MS C 1 , 0) , MS C 1 , 1 ) , MS ( 1 , 2) 

,MSCI,3),C3ACI):NEXT 
SO 1190 DATA 99,99,99,99,99,99,9 

9,99 
AC 1191 DATA 99,99,99,99,99,99,9 

9,99 
OH 1192 DATA 99,99,14,14,14,13,1 

3,99 
ED 1193 DATA 20,12,8,8,8,8,7,19 
LJ 1194 DATA 14,0,0,0,0,0,0,16 
ED 1195 DATA 0,0,0,0,0,0,0,14 
QE 1196 DATA 0,0,0,0,0,0,0,0 
Efl 1199 RETURN 

Efl 1200 IF (S=TP) AND CC=6) THEN 
S=S+2: S= CS/4-INT (S/4) ) t 

4 
LL 1201 NC=C*2+1: COLOR CDCS),7:L 

OCATE X,Y 
U 1202 PRINT MID$(C$,NC,2)i " " 

;NL*;S*CS);" ";NL«;T*; 

NLS;" ";SSCS) ;NL«; " 

;MID«(CS,NC+16,2) ; 
BC 1210 RETURN 
Gl 1220 FOR U=0 TO 4: X=20: Y=U*5+ 

3 
PN 1225 C=CC0,U) :S=SC0,U) :GOSUB 

1200: NEXT 
Bi 1230 RETURN 
et 1230 FDR 1=0 TO 23: J=INTCRND( 

1)»24) :T=«DCCI) : DC ( I ) =DC C 

J):DC(J)=T 
HI 1260 T=DSCI):DSCl>=DStJ) :DB(J 

)=T:NEXT 
HB 1270 FOR J=0 TO 3: FOR 1=0 TO 

4 
CJ 1273 CCJ, I)=DCCJt5+I) :S(J,I) = 
DSCJI5+I) :NEXT I , J : KC=DC 

C20) :p;S-DSC20) 
6H 1280 RETURN 

MB 1300 COLOR 1,7: LOCATE 12,2S:P 
RINT "FIRST BLACK" :LDCA 

TE 13,29iPRINT "JACK DEA 
LS" 
DJ 1320 GDSUB 1250: DL=0: CC-0 
(SB 1330 C=DC(CC>:S=DSCCC> :X=CXCD 

L>:Y=CY<DL) : GDSUB 1200 
P« 1331 FOR DE=1 TO 500: NEXT 
ND 1335 IF CDCCCC)=2) AND CCDSCC 
C) AND 2531=1) THEN 1355 
CB 1336 X=CX(DL) :y=Cy(DL):eDSUB 

9000 
UN 1337 FOR DE=1 TO 100: NEXT 
Efi 1340 CC=CC+I:DL=FNNP(DL) :G0TO 

1330 
6C 1355 GOSUB 1450: COLOR 1,7:L0C 

ATE 12,29 
8J 1356 IF DL=0 THEN 1370 
ffl 1360 PRINT " PLAYER" ;STR»(DL) 
Cn 1363 LOCATE 13, 30: PRINT " DEA 

LS";:60TO 1375 
BF 1370 PRINT "YOUR DEAL"; 



HN 137S eOSUB 1400 

PC 1376 X=CX(DL> :Y=CY(DL) : GOSUB 

9000 
LD 1380 COLOR 7,1: RETURN 
«D 1400 COLOR 4,0: LOCATE 15,2a:P 

RINT " HIT RETURN ";CHR* 

C7); 
JC 1410 WHILE INKEY*<>CHR*(13):W 

END 
H 1415 eOSUB 1450 
>:B 1430 COLOR 7,1: RETURN 
m. 1450 COLOR 0,7: FDR 1 = 12 TO 16 

: LOCATE I, 28: PRINT SPC ( I 

2): NEXT: RETURN 
KI 1465 I=N*2 + 1:F0R J=0 TO Z:LOC 

ATE X+J,Y:PRINT MID*(N«C 

J), I, 2): NEXT: RETURN 
LQ 1500 FOR 1=0 TO 3: SP (P, I ) =FC ( 

P AND 233):NSCP,I)=0:NEX 

T 
Dl 1505 FOR 1=0 TO 4: S=S CP, I ) : C= 

C CP, I > : SP (P, S) =SP CP, S) +C 

PCC) :NSCP,S)=NSCP,S)+1 
ON 1510 IF C=2 THEN S=S+2:S=(S/4 

-INT<S/4) }*4:SPCP,S)=SP( 

P,S)+6:NSCP,S)=NS<P,B>+1 
KN 1515 IF C=5 THEN FDR J=0 TO 3 

:SPCP,J)=SP(P,J)+4:NEXT 
on 1520 NEXT 
HC 1523 SS=0:FOR 1 = TO 4: IF NSC 

P,I)=0 THEN SPCP, I)=«0;SS 

=SS+1 
AF 1530 NEXT:FOR 1=0 TD 3rSP(P,I 

)=SP(P,I)+SS:NEXT 
«0 1535 IF PODL THEN 1550 
OC 1540 IF KC=5 THEN SP(P,KS)=SP 

CP,KS)+4 
1ft 1545 SP(P,KS)=SP(P,KS>+CP(KC> 

:NSCP,KS)=NSCP,KS)+1 
SE 1550 RETURN 
EB 1600 LD=0:HI = 1:XP"14: YP=11:G0 

SUB 1910 
BD 1605 IF AN=I THEN TP=KS 
BK 1610 RETURN 
MI 1615 LOCATE 14,9:PRINT "loneh 

and"; 
HN 1616 L0=12:HI = 13:XP=14:YP=18: 

GOSUB 1910: LH=0 
DC 1618 IF AN=13 THEN LH=1:L0CAT 

E MXCBD) ,MYCBD):PRINT "1 

onehand" ; 
PI 1619 LOCATE 14,9:PRINT " 

IK 1620 RETURN 

JJ 1625 LH=0:IF SP (P, TP) >GA (NS CP 

,TPn THEN LH=1 
EA 1630 RETURN 

NH 1650 IF FNNPCFNNPCP) )=DL THEN 
GDSUB 1625: F=LH: GOTO 16 

85 
91 1654 F=0:IF KC=2 THEN GOTO 16 

60 
KJ 1655 IF SP(P,KS) >OU(NSCF,KS) ) 

THEN F=l 
CP 1660 IF SPCP,KS) >OBCNS(P,KS) ) 

THEN F=I 
fN 1665 IF (F=0) OR CPOFNNPCDL) 

) THEN 1685 
Fl 1670 SB=CPCKC):IF KC=5 THEN S 

B=3 
CC 1675 FOR 1=0 TO 3: IF I< >KS TH 

EN IF SPCF, I) >=(SPCP,KS) 

-SB) THEN F=0 
HE 1680 NEXT I 
PA 1685 IF F=l THEN TP=KS 
EG 1699 RETURN 
HE 1700 L0=2:Hr=3:XP=14: YP=11:G0 

SUB 1910 
DN 1705 IF AN=3 THEN TP=KS 
fid 1710 RETURN 
!H 1750 IF SPCP.KS) >FUCNS<P,KS) ) 

THEN TP=KS 
m 1755 RETURN 
Nfl 1800 L0=4:HI=8: XP=14: YP=1 1;G0 

SUB 1910 



March 1987 COMPITTEI 59 



F!) 1801 IF AN-5=KS THEN 1800 

m 1805 IF AN>4 THEN TP=AN-5 

SQ 18113 RETURN 

:0 1850 DF=0:FDR 1=0 TD 3: IF I=K 

S THEN 1865 
OE IB55 IF SPtP, I)-MS(NS(P, I),PS 

XDF THEN 1865 
GC 1860 DF=SPCP, I)-MS(IMS(P, n ,PS 

) :TP=I 
a 1865 NEXT 
M 1870 RETURN 
m 1900 FOR 1=1 TD 3- FOR J=0 TO 

2: LOCATE MX (I > + J , MY ( I ) : P 

RINT SPACES (G>; 
t;0 1905 NEXT J: NEXT I 
DJ 1907 RETURN 
PI 1910 AN=LD 
LP 1915 X1 = XP: Yl=YP:FaR 1=L0 TO 

HI: COLOR 7,1: IF lOAN TH 

EN 1925 
jn 1920 IF CAN=LD) OR (HI-L0=1) 

THEN COLOR 1,7: GOTO 1925 
ELSE COLOR .COCI-LO-l) 
LE 1925 LOCATE X1,Y1: PRINT MES (I 

>; :Xl=Xi+i:NEXT 
OG 1930 K*=INKEY*;IF K«="" THEN 

1930 ELSE IF KS=CHR*(13) 
THEN 1955 
DIt 1932 K=ASC(RIBHT«(K«, 1) ) : IF K 

<>72 THEN 1940 
JL 1935 AN=AN-1:IF AN<LD THEN AN 

=HI 
Pfl 1940 IF KO80 THEN 1950 
m 1945 AN=AN+l:tF AN>HI THEN AN 

= L0 
EG 1950 GOTO 1915 
OG 1955 X1 = XP:Y1=YP- COLOR 7,1:F0 

R I=LO TO HI: LOCATE X1,Y 

1:PRINT BLS; : Xl^Xl+liNEX 

T 
LO 1965 RETURN 
JG 2000 GOSUB 1250:BOSUB 1220: P= 

FNNP<DL) :TP=4:BD=0:KLI=0 
U 2003 X=B: Y=13:C=KC:S=KS:GaSUB 

1200: COLOR 7, I 
EJ 2007 IF DLO0 THEN LOCATE MX ( 

DL) ,MY(DL) :PRINT "dealer 

fO 2010 GOSUB 1500 

DJ 2015 IF P=0 THEN GOSUB 1600: G 

OTO 2040 
lG 2016 IF ABS(P-DL)<>2 THEN 202 


C6 2017 GOSUB 1625: IF LH=1 THEN 

TP=K5:G0T0 2025 
K 2020 GOSUB 1650 
BB 2025 LOCATE MX(P),MY(P> 
DJ 2030 COLOR 7,1: IF TP=4 THEN P 

RINT " pa55":G0T0 2040 
NH 2035 BD=P: PRINT "order up" 
HE 2040 P=FNNP(P>:IF CP<>DL> AND 

(TP=4) THEN 2010 
IK 2045 P=DL: GOSUB 1500: IF TP04 

THEN 2105 
NC 2050 IF DL=0 THEN GOSUB 1700: 

GOTO 2070 
HL 2053 GOSUB 1750: LOCATE MX(DL) 

,MY(DL) 
LB 2060 IF TP=4 THEN PRINT "turn 

ed":LOCATE MX (DL) +1 , MY (D 

L): PRINT " down": GOTO 20 

70 
CB 2065 BD=P; PRINT "pi eked" : LOCA 

TE MX(DL)+l,MY(DL):PRrNT 
up " 



IE 


2085 


OG 


2086 


00 


2038 


BJ 


2089 


EO 


2090 


QD 


2100 


DD 


2105 


!H 


2109 


LG 


2110 



LK 2111 



m 


2112 


LC 


2115 


LP 


2120 


BJ 


2140 


n 


2145 


!H 


2150 


PS 


2200 


NB 


2203 


90 


2210 


09 


2215 



il 2218 



220 



FDR DE=1 TO 1000: NEXT 
IF (BD=0) AND (TP04) TH 
EN 2105 
W 2072 X=8:Y=I3:GDSUB 9000: IF T 
P04 THEN 2105 
GOSUB 1900:PS=0 
P=FNNP(P) 

IF P=0 THEN 6QSUB 1800:G 
OTO 2090 



Bfl 2070 
16 2071 



LN 2073 
NO 2075 

Bit 2080 



CD 


2223 


JS 


2225 


G» 


2230 


AS 


2245 


fF 


2250 


m 


2255 


PS 


2270 


.ffl 


2275 


no 


2280 


in 


2300 


K 


2305 


GJ 


2310 


SI 


2315 


QE 


2320 


EP 


2325 


HO 


2330 


!f. 


2331 


PS 


2335 


ns 


2340 


FB 


2345 


GF 


2350 


LP 


2355 


a 


2360 


DB 


2300 



GOSUB 1B50: LOCATE MX(P), 
MY(P) 

FOR DE=1 TD 300: NEXT 
IF TP=4 THEN PRINT " pa 
S5"; :GDTD 2090 
BD=P: PRINT RIGHT* (MEt (TP 
+5) ,8> ; 

IF (POOL) AND (TP=4) TH 
EN PS=PS+1:6DT0 2073 
GOTO 2109 

KU=1:IF (BD=0> AND (DL=2 
) THEN LH=1:6DTD 2120 
IF TP=4 THEN 2140 
IF (LH=n AND (BDO0) TH 
EN 2120 

IF BD=0 THEN GOSUB 1615: 
GOTO 2140 
GOSUB 1625 
IF LH=0 THEN 2140 
L.OCATE 1,1: PR I NT "loneha 
nd" 

FOR DE=1 TO 1000:NEXT 
GOSUB 1900 
RETURN 
F=-l 

F=F+1:IF C(0,F)=-i THEN 
2205 
G=F 

COLOR , 7: Y=G»5+4: LOCATE 
21,Y:PRINT " ": LOCATE 2 
2, Y: PRINT " ": LOCATE 23 
.YiPRINT " "; 
COLOR 10,2: Y=F*5+4:L0CAT 
E 21, YiPRINT "VI":LOCATE 

22, YiPRINT "jJ^sLOCATE 
23, Y: PRINT " i^; 
KS=INKEYt: IF T«="" THEN 
2220 ELSE IF K*=CHR«(13) 

THEN 2280 
K=ASC(RIBHT*(KS, 1) ) 
G=F:IF K075 THEN 2250 
F=NF(F):IF C(0,F)<0 THEN 

2230 
GOTO 2215 
IF K077 THEN 2275 
F=NF(F+2):IF C(0,F)<0 TH 
EN 2255 
GOTO 2215 
GOTO 2220 
COLOR 1,7: RETURN 
FOR 1=0 TO 4:IF (S(P,I)= 
TP) AND (C(P,n=2) THEN 
C(P, I)=7:GDTa 2310 
IF t(S(P,n AND 253> = (TP 

AND 253)) AND (C(P,I)=2 
)THEN C(P, I)=6:S(P, I)=TP 
NEXT I 

FDR 1=0 TO 4: FOR J=0 TO 
3: IF S(P,J) >S(P, J+1) THE 
N 2331 

IF S(P, J)=S<P,J + n THEN 
IF CCP, J) >C(P, J+1) THEN 
2331 

T=C(P, J):C(P, J)=C(P,J+1) 
:C(P, J+1)=T 

T=S(P,J) :S(P,J)=S(P,J+1) 
:S(P, J+1)=T 
NEXT J: NEXT I 
FOR I-=0 TD 4:PT(I)=0:IF 
S(P,I)=TP THEN PT(I)=C(P 
, I) +10: GOTO 2350 
IF C<P,I)=5 THEN PT(I)=9 
:GOTO 2350 

IF :S(P, n<>S(P,NF(I)) ) 
AND (S(P, I)<>S(P,NF(I+2) 
)) THEN PT(I)=-i 
NEXT I 

L=99:F0R 1=0 TO 4: IF PT ( 
I XL THEN F=I:L=PT(I) 
NEXT I: RETURN 
FOR 1=0 TD 3: FOR J=0 TO 
3:NS(I,J>=0:NEXT J: FOR J 
=0 TO 4: IF C(I,J)<>2 THE 
N 2515 



PF 


2505 


EJ 


2510 


KH 


2515 


Br 


2520 


m 


2700 


CN 


2705 


KG 


2710 


FI 


2715 


OH 


2720 


AH 


3000 


EF 


3001 


BB- 


3002 


FO 


3005 


EE 


3010 


01 


3011 


if 


3015 


It 


3020 


FP 


3021 


![ 


3025 


JL 


3030 


^H 


3035 


;: 


3040 


ph 


3045 


PC 


3050 


BJ 


3055 


i: 


3360 


EH 


3065 


■'J 


3070 


Cl 


3071 


10 


3072 


Pi 


3075 


NS 


3078 


FA 


30B0 


[fl 


3085 


BH 


3086 


KO 


3087 


C» 


3090 



BD 309S 



IF S{I,J)=TP THEN C(I,J) 

=7: GOTO 2515 

IF ABS(SCI,J)-TP)=2 THEN 

C(I,J)=6:S<I,J)-TF 
NS (I , S (I , J ) ) =NS ( I , S (I , J ) 
)+l:NEXT J: NEXT I 
RETURN 

LOCATE 2,2: PRINT "Partne 
r-7" ; : LD=9: HI=ia: XP=2: YP= 

12:G0SUB 1910 
FC(0)=0:IF AN=10 THEN FC 

(0)=2 

LOCATE 2, 2: PRINT "Oppone 
nts?"; :LO=9:HI=10:XP=2:Y 
P=14:G0SUB 1910 
FC<1)=0:IF AN=10 THEN FC 

(1)=2 

LOCATE 2,2: PRINT " 

" ; : RETURN 
FDR 1=0 TD 7: FOR J=0 TO 
3:CL(I,J)=0:NEXT J,I:CL( 

2,TP AND 253) =1 

FDR 1=0 TO 3:SL(I)=0:NEX 

T I 

LD=FNNP(DL) : DM=4: TR (0) =0 

:TR(1)=0:IF LH=0 THEN 30 

15 

IF BD=2 THEN X=20:FOR 1= 

TO 4:Y=I»5+3:G0SUB 900 

0:NEXT I 

DM=FNNPCFNNP(BD) ) 

IF LH=1 THEN IF LD=DM TH 

EN LD=FNNP(LD) 

FOR TK=0 TO 4:P=LD:PS=0: 

TL=0:IF DM=P THEN P=FNNP 

(P) 

GOSUB 3500:WP=P:IF LH-1 

THEN PS=PS+1 

SL(S(P,PC(P) ) )=1 

IF S(P,PC(P) )=TP THEN TL 

= 1 

FOR 1=1 TD 3:P=FNNP{P) : I 

F P=D« THEN 3060 

PS=PS+1: GOSUB 3500: IF TL 

=0 THEN 3030 

IF S(P,PC(P) )=TP THEN_ IF 
C (P,PC (P) ) >C(WP,PC(WP) ) 
THEN WP=P 

GOTO 3060 

IF S(P,PC(P) )=TP THEN WP 

=P:TL=1:60T0 3060 

IF S(P,PC(P) )=S(WP,PC(WP 

)) THEN IF C(P,PC<P) ) >C( 

WP.PC<WP>) THEN WP=P 

NEXT: FOR DE=1 TO 200: NEX 

T 

COLOR 4,0: LOCATE PX(WP>, 

PY(WP>+2 

PRINT ■■M|";CD*;CLS; "J|";N 

L«;CDt; ''l";CD$;CL*; " Jl|" ; 

FOR DE=1 TO 2000: NEXT: LD 

=WP:WT=WP AND 253:TR(WT) 

=TR(WT)+1 

COLOR 0,4:X=21:Y=31+6*WT 

:N=TR(WT) : GOSUB 1465 

FOR 1=0 TO 3:X=PX(I):Y=P 

Yd): GOSUB 9000: C ( I , PC ( 1 

)>=-l:NEXT I,TK 

LOCATE 1,1: PR I NT " 

f 
BT=BD AND 253: LOCATE 15, 
28 

COLOR 0,4: IF TR(BT><3 TH 
EN 3108 

IF TR(BT)<5 THEN 3097 
PW!BT)=PW<BT)+2+LH»2 
IF BT=0 THEN PRINT " YO 
U WON ": LOCATE 16,2B:P 
RINT " ALL TRICKS " : GOTO 

3200 
IF BT=1 THEN PRINT "COMP 
UTER WON": LOCATE i6,28:P 
RINT " ALL TRICKS "jGDTO 

3200 



60 COMPUTEI March 1987 



EJ 3097 
n 3100 



3105 



IC 310B 
JK 3tl0 



FO 3115 



BC 3200 

EF 3205 

K 3500 

Ht 3502 



CP 3503 



m 


3504 


EI 


3505 


u 


3507 


€E 


3508 


PB 


3509 


KB 


3510 


JD 


3512 


HC 


3515 


JD 


3530 


OC 


3535 


BD 


3540 


GE 


4000 


CC 


4005 


PC 


4010 


no 


4015 


JA 


4020 


Pfl 


4025 


IN 


4030 


EN 


4035 


L6 


4040 


PE 


4045 


OF 


4050 


PP 


4100 


111 


4105 


PE 


4110 


BB 


4115 


6A 


4120 


n 


4125 


KB 


4130 


BH 


4135 


LP 


4140 


SP 


4200 


KB 


4201 


DO 


4203 


NE 


4210 



PW(BT)"PW(BTt+l 

IF TR(0)>2 THEN PRINT "Y 

DU WON HAND " ; : GOTO 3200 

IF TR(1) >2 THEN PRINT " 
COMPUTER ■': LOCATE 16,2 

8: PR I NT " WON HAND " : G 

OTO 3200 

PW ( 1 -BT > =PW ( 1 -BT ) +2 

IF TR(0)<3 THEN PRINT "Y 

OU'VE BEEN": LOCATE 16,2 

8: PRINT " EUCHRED! ":G 

OTD 3200 

IF TR<1J<3 THEN PRINT " 
CDMPUTER ": LOCATE 16,2 

8: PRINT " EUCHRED! 

FOR DE=I TO 2000: NEXT 

RETURN 

IF P>0 THEN 3509 

COLOR 14,0; LOCATE 15,28: 

PRINT " YOUR PLAY " ; : GO 

SUB 2200 

LS=S<LD,PC(LD)) : IF (PS=0 

) DR (S(P,F)=LSJ OR (NSl 
P,LS)=0) THEN 3507 

EOSUB 2215: GOTO 3503 

X=20: Y=-F*5+3: GOSUB 9000 : 
GOTO 3530 

COLOR 7: LOCATE 15,2B:PRI 
NT " ■■; 

X=20:Y=F«5+3: GOSUB 9000: 
GOTO 3530 

IF TK<5 THEN 3515 

FOR K=0 TO 4: IF C(P,J)>- 

1 THEN F=I 

NEXT K:BaTO 3530 

ON (PS+1) GOSUB 4000,410 

0,4200,4200 

FC<P)=F:Y=PY(P):X=PX tp) : 

C=C(P,F)iS=B(P,F) : GOSUB 

1200 

NS(P,S<P,F) )=NS(P,S(P,F) 

)-l:CL(C(P,F> ,S(P,F) )=1 

RETURN 

IF NS(P,TP)<>5-TK THEN 4 

015 

SP=TP:BDSUB 5200: IF F=l 

THEN GOTO 51 50 

GOTO 5160 

IF (LHOl) OR (BDOP) TH 

EN 4030 

IF NS(P,TP)>0 THEN SP=TP 

:60T0 5150 

GOTO 5050 

GDSUB 5000: IF (F=l) AND 

(ABS(BD-P) =2) THEN SP=TP 

:EDTO 5150 

GOSUB 5250: IF tFOl) OR 

(POBD) THEN 5050 

GOSUB 5200: IF I^l THEN S 

P=TP:GOTD 5150 

IF NS{P,TP)>2 THEN SP=TP 

iGOTO 5160 

GOTO 5050 

IF NS(P,SCLD,PC(LD) ) >=0 

THEN 4115 

GOSUB 5300:SP=S(LD,PC(LD 

) ) : IF F=l THEN 5150 

GOTO 5160 

IF NS(P,TP)=5-TK THEN SP 

=TP:60T0 5160 

IF NS(P,TP)=0 THEN 5100 

IF C(LD,PC(LD) >=5 THEN S 

P=TP:GOTD 5160 

IF BDOP THEN SP=TP:GDTQ 

5160 
GOSUB 5250 r IF F=l THEN S 
P=TP:GOTO 5160 
GOTO 5100 

IF NSCP,S(LD,PC(LD) ) )=0 
THEN 4235 
SP=S(LD,PC<LD) ) 
IF (SPOTP) AND (TL=1) T 
HEN 5160 
IF ABS<WP-P)<>2 THEN 422 



LN 4215 



BJ 4220 
KB 4225 

on 4230 
EC 4235 

FN 4245 

IB 4250 
HL 4255 

ftp 4260 
HB 4270 
bD 4275 

m 4280 

BN 42SS 

if. 4290 

OE 4300 

ifL 4305 
JC 4310 

EB 4315 

LN 4320 
Pfl 5000 

EB 5005 
Bft 5050 



KH 


5055 


CF 


5060 


CB 


5065 


BE 


5070 


00 


5100 


KN 


5105 


m 


3110 


JD 


5113 


BC 


5120 


IJ 


5125 


IIH 


S126 


fIF 


5130 


!fl 


5131 


NJ 


5135 


sn 


5140 


IE 


5150 


KB 


5151 


FC 


5155 


?D 


5160 


ID 


5161 


f c 


5165 


oo 


5180 



£L 


5185 


FH 


5200 


CD 


5205 


EJ 


5210 


sc 


5215 



BOSUB 5300: IF F=l THEN 6 

OSUB 5350: IF F=0 THEN 31 

50 

GOTO 5160 

GOSUB 5300: IF F=l THEN 5 

150 

GOTO 5160 

IF NS(P,TP)<5-TK THEN 42 

70 

SP=TP: IF ABS(WP-P)=2 THE 

N 5160 

IF TL=0 THEN 5160 

GOSUB 5300: IF F=l THEN 5 

400 

GDTD 5160 

IF NS(P,TP)=0 THEN 5100 

IF ABS(WP-P)<>2 THEN 431 



IF <TL=1) OR (PS-3) THEN 
5100 

IF C(WP,PC(WP) )=5 THEN 5 

100 

IF C(WP,PC(WP> )<4 THEN S 

P=TP:GaTa 5160 

GOSUB 5250: IF F=l THEN S 

P=TP:GOTa 5160 

GOTO 5100 

IF TL=0 THEN SP=TP:GOTO 

5160 

GDSUB 5300: IF F=l THEN S 

P=TP:GOTO 5400 

GOTD 5100 

F=0:FOR A=0 TO 4: IF C(P, 

A) >S THEN F=l 

NEXT A: RETURN 

F=-1:F0R A=0 TO 4: IF (SL 

(S(P,A))=0) AND (S(P,A)< 

>TP) THEN IF C(P,A>=5 TH 

EN F=A 

NEXT A; IF F>-1 THEN 5070 
LC=-1:FDR A=0 TO 4: IF S( 
P.AJOTP THEN IF C(P,fi)> 
LC THEN LC-=C(P, A) :F=A 
NEXT A 
RETURN 

IF NS(P,TP>>0 THEN 5125 
SP=-1:F0R A=0 TO 4 

IF SCP,A)<>TP THEN IF (C 

(P,A)=5) AND (NS(P,S(P,A 

) ) >1) THEN SP=S(P,A) 

NEXT fi:IF SP>-1 THEN 516 



BQTD 5180 

V=4:F=-1:FDR A=0 TO 4 

IF S(P,A)=TP THEN 5135 

IF (NS(P,S(P,A) )<>1) OR 

(SL<S(P,A> )=1) THEN 5135 

IF (C(P,A)>=0) AND (C(P, 
AXV) THEN V=C(P, A) :F=A 
NEXT A: IF F=-l THEN 51B0 
RETURN 

IF PS=3 THEN 5400 
V=-l5F0R A=0 TO 4: IF B (P 
,A)=SP THEN IF C(P,A)>V 
THEN V=C(P,A) :F=A 
NEXT A: RETURN 
V=10:FOR A=0 TO 4 
IF SCP,A)=SP THEN IF <C: 
P,A)>-0) AND (C<P, AXVJ 
THEN V=C(P, A).-F=A 
NEXT A: RETURN 
V=10:FOR A=0 TO 4: IF S(P 
,fi).'.>TP THEN IF C(P,fl)>- 
1 THEN IF C(P,A)<V THEN 
V=C(P,A) :F=A 
NEXT A: RETURN 
HT=8:F=0 

HT=HT-1:IF HT>0 THEN IF 
CL<HT,TP)=1 THEN 5205 
IF HT<0 THEN 5240 
FOR A=0 TO 4: IF S(P,A)=T 
P THEN IF C(P,A)=HT THEN 
F=l 



fiF 5220 NEXT A 
EP 5240 RETURN 
DC- 5250 F=1:F0R A=0 TO 4: IF C (P, 

A)>-1 THEN IF (S(P,A)<>T 

P) AND (C(P,A)<5) THEN F 

= 
■^E 5255 NEXT A: RETURN 
:l 5300 F=0:FDR A=-0 TO 4: IF S(P, 

A)=S(WP,PC<WP) ) THEN IF 

C(P,A)>C(WP,PC(WP) ! THEN 
F=l 
EH 5305 NEXT A: RETURN 
CS 5350 F=0:FOR A=0 TO 4: IF S (P, 

A)=S(WP,PC(WPn THEN IF 

C(P, A) -C(WP,PC(WPI )=1 TH 

EN F = l 
-6 5:55 NEXT A: RETURN 
:: 5400 0=10: FOR A=0 TO 4 
^K 5405 IF S(P, A)=S(WP,PC(WPi ) T 

HEN E=C(P, A)-C(WP,PC(WP) 

)tIF (E<D) AND tE>0) THE 

N D=E:F=A 
■J. 5410 NEXT A.- RETURN 
•\ 8100 K=( (J + n/4-INT! (J+l).'4) ! 

t4: RETURN 
::■ 900ti COLOR ,l:LaCATE X,Y:PRIN 

T TSNL»T«NLtT*NL4T«NL$T4 

;: RETURN 



Program 6: Amiga Euchre 

Euchre :■* 

DEFINT a-K:DEi"SNG r , g , b, cy : RANDO 

MIZE TIMER* 

SCREEN 1, 320,200,4, I: WINDOW 3,"" 

, (0,O)-(311, 186) ,16,1:WIND0W OUT 

PUT 3: COLOR 3,B< 

RESTORE PaLetteData:FOR i=0 TO 1 

5: READ r , g , b : PALETTE l,r,g,b:NEX 

T« 

PaLetteData: * 

DATA .2, .2, .9,0,0,0,0,0,0, ,8,0,0 

* 

DATA .8, .8, .8,0,0,1,1,1,0, .93, .9 

3,0-4 

DATA .87,. 87, 0,0,, a, 0,0, 1,0, 1,1, 

0* 

DATA 

.7, .7 



.6, 



3, .3, .3, .5, .5, ,5, ,6, 

.7* 

GOSUB InitiaLize:GOSUB DispLay:G 
OSUB PI,ayers:GOSUB PickDeaLer* 
NewHand:* 
GOSUB Bidding-* 
IF tp=4 THEN* 

COLOR 0,4: LOCATE 12, 29: PRINT "NO 
BIDDERS"* 

LOCATE 13,28:PRINT "HAND DUMPED 
"< 

GOSUB WaitKeyix=20 :FQR i=0 TO 4: 

y=i*5+2:GOSUB EraseCardiNEXT * 

dL=FNnp(dL) :x=8:y=12:GOSUB Erase 

Card* 

COLOR ,0:GOSUB CLRWess:GOTO NewH 

and* 

END IF:C0LOR 5,4:LOCATE 12,29tPR 

INT "TRUMP : "« 

LOCATE 13,29:PRINT "BIDDER: " ; * 

IF bd=0 THEN * 

PRINT "you";* 

ELSE* 

PRINT "p";RIGHT5(STR?(bd) ,1)* 

END IF:PUT(288,88),sb(0,tp) , PSET 

* 

IF ku<>0 THEN * 

IF dL<=0 THEN * 

COLOR II, 2: LOCATE 15, 28: PRINT "P 

ICK DISCARD"* 

GOSUB UPickCard: COLOR ,4:L0CATE 

15,28:PRINT " ";* 

ELSE* 

GOSUB UDiscard* 

END IF:c(dL, f )=kC!s(dL,f)=ks:GOS 



March 1987 COMPUTEl 61 



UB PutHandt 

END IF:x=8:y=12 iGOSUB EraseCard* 

GOSUB ResetHand:GOSUB PLayHaild:C 

OLOR 0,4* 

IF NOT( (pw(0)>9) OR (pw(l)>9>) T 

HEN -* 

x-21 :y=31 :n=0:GOSUB PrintScore-t 

x=21:y''37:n=0!GOSUB PrintScore* 

x=7:y=31 :ri=pw(0) :GOSUB PrintScor 

x=7:y=37sn=pw(l) :GOSUB PrintScor 

e< 

dL=FNnp(dL) iGOSUB ExitLOOpPDsGOT 

O NewHand* 

END IF:wt=0:IF pw(l}>=10 THEN wt 

= l-s 

x='7iy=28+wt*6:n=l jGOSUB PrintSco 

re* 

x=7 :y=31+wt*6 :n=pw(wt)-10 :GOSUB 

PrintScore* 

FOR de»l TO 2000: NEXT* 

GOSUB CLearWindow: COLOR 11, 3 s LOG 

ATE 13, 2S: PRINT " YOU";-* 

IF wt=0 THEN PRINT " WIN I "* 

IF wt=l THEN PRINT "LOSE "* 

COLOR 4,0:LOCATE 2,2:PRINT "Play 

again?"* 

LO=ll:hi=12:xp=2:yp-14:GOSUB SeL 

ection* 

SCREEN CLOSE 1 : WINDOW CLOSE 3* 

IF an=ll THEN RUN * 

END* 

* 

DispLay: * 

GOSUB InitShapes: WIDTH 40;CLSiCO 

LOR ,0* 

LINEC0,0)-(3,3),2,bf !GET(0,0)-(3 

,3) ,en< 

LINE (0,0)-(3,3),ll , bf iGET ( , ) - ( 

3,3), nb* 

GET ( 4 , 4 ) - ( 40 , 44 ) , ec : LINE ( 4 , 4 ) - ( 4 

0,44) ,4,bf* 

GET ( 4 , 4 ) - ( 40 , 44 ) , cb : GET ( 4 , 4 ) - ( 17 

,21) ,eh:CLS* 

FOR i=0 TO 3: j=i*2:LINE(216+j, j) 

-(311-j,23-j),i+12,bf:NEXT* 

COLOR 2, 4: FOR i=0 TO 6 STEP 2: LI 

NE(224,7+i)-(303,7+i) :NEXT* 

LOCATE 2, 31 I PRINT " EUCHRE" :LINE( 

224,15)-(303,15)* 

COLOR 10, 2: LOCATE 4, 28: PRINT " 

POINTS * 

LOCATE 18, 28 I PRINT " TRICKS 

"* 

COLOR 9, 2: LOCATE 5 , 28 : PRINT " YD 

U COMP "* 

LOCATE 19, 28: PRINT " YOU COMP 

"* 

FOR i=0 TO 4: LOCATE 6+i, 28: PRINT 

w5: LOCATE 20+i , 28 j PRINT w5 r : NEXT 

* 

LINE(216,40)-(311,40),9:LINE{216 

,152)-(311,152) ,9* 

LINE(262,32)-(262,79) ,9:LINE{262 

,144)-(262,191) ,9* 

COLOR ,4sL0CATE 11, 28: PRINT w?:L 

OCATE 17, 28: PRINT w$: GOSUB CLear 

Window* 

FOR i=0 TO 3:LINE(216,a0+i)-( 311 

,80+i) , i+12* 

LINE(216,132+i)-{311, 132+i) ,15-i 

:NEXT * 

n=0:x=7 :y=31:G0SUB PrintScoreiy= 

37sG0SUB PrintScore* 

x=21 :y=31:G0SUB PrintScore :y-37 : 

GOSUB PrintScore* 

COLOR 4,0: RETURN* 

* 

InitiaLize:* 

DIM c(3,4),s(3,4),ms(6,3),cL(7,3 

) ,dcC23) ,ds(23),sp(3,5) ,ns(3,5), 

me$C15)* 

DIM en(19) ,nb(19),eh(75) ,hb(75), 

ec(507),cb(5O7),Hb{30,3)* 



DEF FNnp(x)=( (x+l)/4-INT((x+l)/4 

))*4* 

bLS=SPACE$(10) :w5=SPACE?(12) :c5= 

"9 10J Q K A J J 910 J Q K A J 

J"* 

FOR i=0 TO 3: READ co( i ): NEXT : DAT 

A 3,2,3,2* 

FOR i=0 TO 6: READ nf { i ) iNEXT : DAT 

A 4,0,1,2,3,4,0* 

FOR j=0 TO 3:FOR 1=0 TO 5:dc(j*6 

■l-i) = i;ds( j*6+i)=j:NEXT i,j* 

FOR i=0 TO 3: READ px ( i ) , py ( i ) :NE 

XT:DATA 14,12,8,7,2,12,8,17* 

FOR i=0 TO 3: READ cx( i ) ,cy( i) :NE 

XT:DATA 18,11,11,4,4,11,11,18* 

FOR i=0 TO 5: READ cp( i ): NEXT : DAT 

A 1,1,8,1,2,-1* 

FOR i = TO 13 1 READ me5(i):NEXT* 

DATA "pass "("order up", "pass 

","pick up"," PASS "("diamonds 

"* 

DATA "clubs "."hearts ","spad 

ea ", "normal "."aggressive", 

"yes", "no ","yes"* 

FOR i=i0 TO 3 : READ mx ( i ) , my ( i ) : NE 

XT: DATA 1,1,8,3,2,11,8,19* 

FOR i=0 TO 6: READ obC i ) , Ou(i ) , PU 

(i),ms(i,0),mE(i,l)(ms(i,2),ms(i 

(3) (ga(i) :NEXT* 

DATA 99(99(99,99,99(99(99,99* 

DATA 99,99,99,99,99,99,99,99* 

DATA 99,99,14,14,14,13,13,99* 

DATA 20,12,8,8,8,8,7,19* 

DATA 14,0,0,0,0,0,0,16* 

DATA 0,0,0,0,0,0,0,14* 

DATA 0,0,0,0,0,0,0,0* 

FOR i=0 TO 9: READ ptSc ( i ) :NEXT* 

DATA 107684796,, 13421772S,, 1671982 

3&, 16764879£.( 134343 3 3£,* 

DATA 16764703&(16768799i, 1342179 

1&(16768991£., 134225596. * 

RETURN* 

* 

PutCard; * 

IF (s=tp) AND (c=6) THEN s=s+2:s 

=Cs/4-INT(s/4) )*4* 

NC=c*2+l : COLOR CO ( s ) , 4 t px= ( y-1) * 

a-2:py=(x-l)*8-l* 

PUT(px,py) ( Cb, PSET: :px=px+l : py=p 

y+2:PUT(px,py+8) , sb(0, s) , PSET* 

px=px+2 : py=py- 1 1 PUT ( px+22 , py+21 ) 

,sb(0,s) ,PSET* 

LOCATE x,y: PRINT MID$ ( c? ( NC , 2 ) : L 

OCATE x+4,y+2; PRINT HID5(c?(NC+l 

6,2);* 

RETURN * 

< 

PutHand: FOR u=0 TO 4 : X=20 ;y'«u*5 

+ 2* 

c=c(0, u) : s=s(0,u) :GOSUB PutCard: 

NEXT: RETURN* 

* 

DeaLCards: FOR i=0 TO 23:j=INT(R 

ND(1)*24) :t=dc(i) :dc(i)=dc( j) ;dc 

(j>=t* 

t=ds(i) :ds(i)=ds( j) :ds( j )=t :NEXT 

:FOR j=0 TO 3; FOR i=0 TO 4* 

c( j,i)=dc( j*5+i):s( j,i)-ds( j*5+i 

):NEXT i, j:kc=dc(20) :)cs=ds(20) :R 

ETURN* 

* 

PickDeaLer: < 

COLOR 0,4: LOCATE 13, 28: PRINT "FI 

RST BLACK" : LOCATE 14, 29: PRINT " 

JACK DEALS"* 

GOSUB DeaLCards :dL=0:cc=0* 

LoopPD: c=dc( cc) : s=ds(cc) :x=cx(d 

L) :y=cy(dL) :GOSUB PutCard* 

FOR de=l TO 500: NEXT * 

IF (dcCcc)=2) AND ((ds(cc) AND 2 

53)>-l) THEN ExitLoopPD* 

x=cx(dL) :y=cy(dL) :GOSUB EraseCar 

d* 

FOR de=l TO 100:NEXT * 



cc=cc+l :dL=FNnp(dL) :GOTO LoopPD* 

ExitLoopPD: GOSUB CLearWindow: CO 

LOR 0,4: LOCATE 12,29* 

IF dL<>0 THEN * 

PRINT " PLAYER" ;STRS(dL)* 

LOCATE 13, 30: PRINT " DEALS",-* 

ELSE* 

PRINT "YOUR DEAL";* 

END IF: GOSUB WaitKey* 

x=cx(dL) :y=cy(dL) :GOSUB EraseCar 

d: COLOR 7,1: RETURN* 

* 

WaitKey: COLOR 3,2:LOCATE 15,28: 

PRINT " HIT RETURN ": SOUND 2000, 

6* 

WHILE INKEYS<>CHR${13) :WEND:GOSU 

B CLecirWindow: COLOR 7,1: RETURN* 

* 

CLearWindow: COLOR , 4 : FOR i=12 T 

O 16: LOCATE i, 28: PRINT w5:NEXT:R 

ETURN* 

* 

PrintScore :* 

tx=(y-l)*a:py=(x-l)*8:bt&=l:iS,=p 

t£<(n)* 

FOR q=0 TO 5: FOR p=0 TO 3:px=tx-H 

p*4* 

IF (bt& AND i£.)<>0 THEN PUT(px,p 

y),nb(PSET ELSE PUT C px ( py > ( en( PS 

ET* 

pX=tx-hp*4:bti=bt6,*2:NEXT p:py=py 

-t-4: NEXT: RETURN* 

* 

SetPoints: * 

FOR i=0 TO 3:Sp(p(i)="fc(p AND 25 

3):ns(p,i)=0:NEXT * 

FOR i=0 TO 4 :s=s(p, i ) :c=c(p, i ) :s 
p{p(S)='sp(p, s)-^cp( c) :ns(p, s ) =ns ( 
p,s)-H* 

IF c=2 THEN s=s^-2:s=(s/4-INT(s/4 

) )*4:sp(p,s)=sp(p, s)-H6:ns(p,s)=n 

s(p,s)-H* 

IF c=5 THEN * 

FOR j = TO 3:sp(p, j)=sp(p, j)-K4:N 

EXT < 

END IF:SEXT:ss=0:FOR i=0 TO 4:IF 

ns(p,i)=0 THEN Sp(p,i)=0:ss=ss-H 

* 

NEXTiFOR i=0 TO 3 J sp ( p, i ) =sp ( p, i 

)-l-ss:NEXT * 

IF p=dL THEN * 

IF Kc=5 THEN sp{p,ks)=sp(p,ks)-f-4 

* 

sp(p,ks)=sp(p,ks)-l-cp(kc) :ns(p,ks 

)=ns{p,ks)-H* 

END IF: RETURN * 

* 

UOrderUp: Lo=0 :hi=l :xp=14:yp=10 : 

GOSUB SeLection* 

IF an=l THEN tp=ks< 

RETURN * 

* 

ULoneHand: LOCATE 14, 9: print "Lo 

nehand" ;* 

Lo=12:hi=13:xp=14:yp=18:GOSUB Se 

Lection :Lh=0* 

IF an=13 THEN Lh=l:LOCATE mx(bd) 

, my ( bd ): PRINT "Lonehand";* 

LOCATE 14, 9; PRINT " " r ■« 

RETURN * 

* 

CGoALone: Lh>=0:IF sp( p, tp) >ga ( ns 

(p,tp)) THEN Lh=l* 

RETURN* 

* 

COrderUp: IF FNnp( FNnp( p) ) =dL TH 

EN GOSUB CGoALone : f=Lh : GOTO Exit 

ecu* 

f^e-.lF kc<>2 THEN * 

IF 3p(p,ks)>ou(ns[p,ks) ) THEN f= 

1* 

END IF:IF sp( p,ks ) >ob ( ns (p, ks ) ) 

THEN f=l* 

IP (f=0) OR (poPNnpCdL)) THEN E 



62 CfflWPUTH March 1987 



xitCOU* 

sb=cp(kc):IF kc=5 THEN sb=3* 

FOR i=0 TO 3:IF ioks THEN IF sp 

(p,i)> = (sp{p,ks)-sb) THEN f=0-« 

NEXT ■« 

ExitCOU: IF f=l THEN tp=ks-* 

RETURN -« 

UPickUp: LO=2:hi=3 :xp=14:yp=10:G 

OSUB SeLectioti-i 

IF an=3 THEN tp=ks-« 

RETURN ■* 

CPickUp: IF sp(p, ks) >PU(n3{p,ks) 
) THEN tp=ks'i 
RETUSiN * 

UMake : Lo-4 :hi=8 : xp=14 :yp=10 :GOS 

UB SeLection-* 

IF an-5=ks THEN UMake* 

IF an>4 THEN tp=an-5-« 

RETURN ■« 

* 

CMake: df=0:FOR i=0 TO 3* 

IF ioks THEN-t 

IF sp(p, i)-ms(ns(p, i) , ps) >=df TH 

EN df=sp( p, i )-rns(ns (p, i) ,ps ) : tp= 

i-« 

END IF:NEXT-t 

RETURN ■« 

GLRMess; FOR i=l TO 3 : FOR j=0 TO 

2;L0CATE rax( i )+j , my ( i ): PRINT SPA 

CE5 ( 8 ) ; * 

NEXT j,i: RETURN* 

* 

SeLection: ■* 

an=»Lo;k?>«"" : WHILE k$<>'CHR¥ ( 13 )* 

xl=xp:yl=yp:FOR i=LO TO hlsCOLOR 

4,0* 

IF i^«an THEN * 

IF (an=Lo) OR (hi-Lo=l) THEN COL 

OR 0,4 ELSE COLOR ,CO(i-LO-l)* 

END IF: LOCATE xl,yl: PRINT raeS(i) 

; :xl=xI+l:NEXT* 

Waits: k5=INKEY5:IF kS="" THEN W 

aits * 

IF k5=CHR$(28) THEN * 

an=an-l:IF an<Lo THEM an=hi* 

ELSEIF k$=CHR$(29) THEN * 

an=an+l!lF an>hi THEN an=Lo* 

END IF:WEND:Xl=xp:yl=yp:C0LOR 4, 

0* 

FOR i-LQ TO hi: LOCATE xl.ylrPRIN 

T bL5; :xl=xl+l:NEXT* 

RETURN* 

* 

Bidding: * 

GOSUB DeaLCardg:GOSUB PutHand!p= 

FNnp(dL) :tp-=4:bd = 0:ku = 0* 

X=e:y=12:c=kc:s=ksiG0SUB PutCard 

: COLOR 4,0* 

IF dL<>0 THEN LOCATE rax(dL),my(d 

L) : PRINT "dealer"* 

5 GOSUB SetPoints* 

IF p=0 THEN GOSUB UOrderUp:GOTO 

20* 

IF ABS(p-dL)<>2 THEN 7 * 

GOSUB CGoALone:IF Lh=l THEN tp=k 

s:GOTO 10* 

7 GOSUB COrderUp* 

10 LOCATE mx(p) ,ray(p) :COLOR 4,0* 

IF tp=4 THEN PRINT " pass": GOTO 

20* 

bd=p:PRINT "order up"* 

20 p=FNnp(p>:IF (podL) AND { tp= 

4) THEN 5* 

p=dL:GOSUB SetPointSilF tp<>4 TH 

EN 45* 

IF dL=0 THEN GOSUB UPickUp: GOTO 

30* 

GOSUB CPickUp: LOCATE rax(dL),my(d 

L)* 

IF tp=4 THEN PRINT " turned" : LOCA 



TE mx(dL) + l,niy(dL) :PRINT " down" 

iGOTO 30* 

bd=p:PRINT "picked" : LOCATE nix{dL 

)+l,my(dL) :PRINT " up"* 

30 FOR de=l TO 2000: NEXT* 

IF (bd=0) AND (tp<>4) THEN 45 * 

x=8:y=12:GOSUB EraseCardsIF tp<> 

4 THEN 45* 

GOSUB CLRMess:ps=0* 

35 p=FNnp{p)* 

IF p=0 THEN GOSUB UMake: GOTO 40* 

GOSUB CMake:LOCATE mx ( p) ,my ( p) < 

FOR de=I TO 600: NEXT* 

IF tp=4 THEN PRINT " pass";: GOT 

40* 

bd=p: PRINT ine? ( tp+5 ) ?* 

40 IF (podL) AND (tp=4) THEN ps 

=ps+l:GOTO 35* 

GOTO 50* 

45 ku=l:IF (bd=0) AND (dL=2) THE 

N Lh=l:GOTO 60* 

50 IF tp=4 THEN 70* 

IF (Lh=l) AND (bd<>0) THEN 60* 

IF bd=0 THEN GOSUB ULoneHand:GOT 

O 70* 

GOSUB CGoALone* 

IF Lh=0 THEN 70* 

60 LOCATE 1,1: PRINT "Lonehand"* 

70 FOR de=l TO 2000:NEXT* 

GOSUB CLRMess: RETURN* 

* 

upickCard; * 

f=0:WHILE c(0,f)=-l:f=f+l:WENDsg 

= £* 

PrintHand: x=(g*5+2) *8+l :PUT(x, 1 

67) ,eh,PSET:x={f*5+2)*8+l:PUT(x, 

167),hb,PSET< 

GetKeyUPC: k5=INKEY$:IF k?="" TH 

EN GetKeyUPC ELSE IF k?=CHR5(13) 

THEN ExitUPC* 

g=f:IF k|<>CHRS(31) THEN 100* 

90 f=nf(f):IF c(0,f)<0 THEN 90* 

GOTO PrintHand* 

100 IF k?<>CHR?(30) THEN GetKeyU 

PC* 

110 f=nf(f+2):IF c(0,f)<0 THEN 1 

10* 

GOTO PrintHand* 

GOTO GetKeyUPC* 

ExitUPC: RETURN* 

* 

UDiscard:* 

FOR i-0 TO 4* 

IF (s(p,i)=tp) AND (c(p,i)=2) TH 

EN * 

c(p,i)=7< 

ELSE * 

IF ((s(p,i) AND 253)=(tp AND 253 

)) AND (c(p,i)=2)THEN c(p,i)=6:s 

(p,i)=tp* 

END IF: NEXT * 

FOR i=0 TO 4: FOR j=0 TO 3* 

IF NOT(s(p, j)>s(p, j+1) ) THEN* 

IF s{p, j)=s(p, j+1) THEN IF NOT(c 

(p, j}>c(p, j + D) THEN* 

t=c(p, j) :c(p, j)=c(p, j+1) :c(p, j+1 

)=t* 

t=3Cp, j) :s(p, j)=s(p, j+1) :s(p, j+1 

) = t« 

END IF* 

END IF: NEXT j,i* 

FOR i=0 TO 4:pt(i)-0* 

IF s{p,i)='tp THEN * 

pt(i)=c(p,i)+10* 

ELSE* 

IF cCp,i)=5 THEN* 

pt{i)=9< 

ELSE* 

IF Cs(p,i><>s(p,nf(i))) AND (s(p 

,i)<>s(p,nf (i+2))) THEN pt(i)=-l 

* 

END IF* 

END IF: NEXT * 

L=99:FOR i=0 TO 4: IF pt(i)<L THE 



N f=i:L=pt(i)* 
NEXT: RETURN * 
* 
ResetHand :* 

FOR i=0 TO 3: FOR j-0 TO 3 : ns ( 1 , j 

) =3: NEXT: FOR j=0 TO 4* 

IF c(i,j)=2 THEN < 

IF 3(i, j)=tp THEN* 

c(i, j)=7* 

ELSE* 

IF ABS(s(i, j )-tp)=2 THEN c(i,j)= 

6rs(i, j)==tp* 

END IF* 

END IF:ns(i,s(i, j) )=ns(i,s(i, j) ) 

+1:NEXT j,i* 

RETURN * 

PLayers:* 

LOCATE 2,2sPRINT "Partner?" ;: LO= 

9 :hi=10 : xp=2 : yp=12 : GOSUB SeLect i 

on* 

fc(0)=0:IF an=10 THEN fc(0)=s2* 

LOCATE 2,2:PRINT "Opponents? ";: L 

O=9:hi=10:xp=2:yp=14:GOSUB SeLec 

tion* 

fcCl)=0:IF an=10 THEN fc(l)=2* 

LOCATE 2, 2: PRINT " "; :R 

ETURN* 

* 

PLayHand; * 

FOR i=0 TO 7: FOR j=0 TO 3:CL(i,j 

)=0:NEXT j,i:cL(2,tp AND 253)=1* 

FOR i=0 TO 3 :sL( i)=0:NEXT * 

Ld=FNnp(dL) :dra=4:tr(0)=0:tr(l)=0 

5 IF Lh<>0 THEN* 

IF bd=2 THEN x-20:FOJ? 1=0 TO 4 : y 

=i* 5+2: GOSUB EraseCard : NEXT * 

dm=3FNnptFNnp(bd) )* 

IF Lh=l THEN IF Ld=dm THEN Ld=FN 

np ( Ld ) * 

END IF: FOR tk=0 TO 4 : p=Ld :ps=0 : t 

L=0:IF dm=p THEN p=FNnp(p)* 

GOSUB PLayCard:wp=p: IF Lh=l THEN 

ps=ps+l* 

sL(s(p,pc(p) ) )=1* 

IF s(p,pc(p) )=tp THEN tL=l* 

FOR 1=1 TO 3:p=FNnp(p) :IF p=dra T 

HEN 130* 

ps=ps+l:GOSUB PLayCard:IF tL=0 T 

HEN 120* 

IF s(p,pc(p) )=tp THEN IF c(p,pc( 

p) ) >c(wp, pc(wp) ) THEN wp=p* 

GOTO 130* 

120 IF s{p,pc(p) )=tp THEN wp=p : t 

L=1:G0T0 130* 

IP s(p,pc(p) )=s(wp,pc(wp) ) THEN 

IF c(p,pc(p) ) >c(wp,pc{wp) ) THEN 

wp=p* 

130 NEXT: FOR de=l TO 400: NEXT* 

x=px{wp) :y=py (wp) :GOSUB Winner* 

FOR de=l TO 3000: NEXT: Ld=wp:wt=w 

p AND 253:tr(wt)=tr(wt)+l* 

COLOR 2,3:x=21:y=31+6*wt:n=tr(wt 

): GOSUB PrintScore* 

FOR i=0 TO 3:x=px(i) :y=py(i) :GOS 

UB EraseCard:c{i,pc(i))=-l:NEXT 

i, tk* 

COLOR ,0:LOCATE 1,1: PRINT " 

" ;* 

bt=bd AND 2 53: LOCATE 15,28* 

COLOR 2, 3: IF NOT( tr (bt ) <3 ) THEN* 

IF NOT( tr(bt) <5) THEN * 

pw(bt)=pw(bt)+2+Lh*2* 

IF bt=0 THEN PRINT " YOU WON 

": LOCATE 16, 28: PRINT " ALL TRICK 

S " :G0TO 140* 

IF bt=l THEN PRINT "COMPUTER WON 

": LOCATE 16, 28: PRINT " ALL TRICK 

S ":GOTO 140* 

END IF:pw(bt)=pw(bt)+l< 

IP tr(0)>2 THEN PRINT "YOU WON H 

AND",-: GOTO 140* 

IF tr(l)>2 THEN PRINT " COMPUTE 

R "s LOCATE 16, 28: PRINT " WON H 



March 1987 COMPUTB 63 



AND ":GOTO 140* 

END IF:pw( l-bt)=pw( l-bt) + 2-« 

IF tr{0)<3 THEN PRINT "YOU'VE B 

EEN": LOCATE 16, 28: PRINT " EUCHR 

EDI ":GOTO 140-4 

IF tr(l)<3 THEN PRINT " COMPUTE 

R "s LOCATE 16, 28: PRINT " EUCHR 

EDI "■* 

140 FOR de=l TO 4000: NEXT* 

RETURN* 

* 

PLayCard: * 

IF p<=0 THEN * 

COLOR 1 1,2: LOCATE 15, 28: PRINT " 

YOUR PLAY '"irGOSUB UPickCard-« 

150 Ls=s(Ld,pc(Ld) )* 

IF NOT{(ps=0) OR (s(p,f)=Ls} OR 

(ns(p,Ls)=0) ) THEN* 

GOSUB PrintHand:GOTO 150-< 

x=20:y=f*5+2:GOSUB EraseCardiGOT 

160* 

END IF: COLOR , 4 : LOCATE 15,28:PRI 

NT " ":-' 

X=20:y=£*5 + 2;GOSIJB EraseCard : GOT 

O 160* 

END IF: IF tk>=5 THEN * 

FOR 'X.=B TO 4sIF c(p,j)>-l THEN f 

= i« 

NEXT:GOTO 160* 

END IF:ON (ps+1) GOSUQ 4000,4100 

,4200,4200* 

160 pcCp)=f :y=py(p) :x=px(p) :c=c( 

p,f ) :s=s(p,f) :GOSUB PutCard* 

ns(p, sCp, f ) )=ns(p, s(p,f))-l:cL(c 

(p,f) ,s(p, f))=l* 

RETURN* 

* 

4000 IF nsCp,tp) <>5-tk THEN 4015 

* 

Sp=tp:GOSUB 52O0;IF f=l THEN GOT 

O 5150* 

GOTO 5160* 

4015 IF (Lhol) OR (bdop) THEN 

4030* 

IF ns(p,tp)>0 THEN sp=tp:GOTO 51 

50* 

GOTO 5050* 

4030 GOSUD 5000: IF (f=l) AND ( AB 

S(bd-p)=2) THEN sp=tp:GOTO 5150* 

GOSUB 5250:IF (f<>l) OR (pobd) 

THEN 5050* 

GOSUB 5 200: IF i=l THEN sp=tp:GOT 

5150* 

IF ns(p,tp)>2 THEN sp=tp!G0TO 51 

60* 

GOTO 5050* 

4100 IF nsCp, s(Ld,pc(Ld) ) )=0 THE 

N 4115* 

GOSUB 5300:sp=s(Ld,pc[Ld) ) : IF f= 

1 THEN 5150* 
GOTO 5160* 

4115 IF ns(p,tp)=5-tk THEN sp=tp 

:GOTO 5160* 

IF ns(p,tp}=0 THEN 5100* 

IF G(Ld,pc(Ld) )=5 THEN sp=tp:GOT 

5160* 

IF bdop THEN sp=tp:G0TO 5160* 

GOSUB 5250: IF f=l THEN sp=tp:GOT 

O 5160* 

GOTO 5100* 

4200 IF nsCp,s(Ld,pc(Ld) ) )=0 THE 

N 4235* 

sp=s(Ld,pc(Ld) )* 

IF (spotp) AND (tL=l) THEN 5160 

* 

IF ABS(wp-p)<>2 THEN 4225* 

GOSUB 5300: IF f=l THEN GOSUB 535 

0:IF €=0 THEN 5150* 

GOTO 5160* 

4225 GOSUB 5300: IF f=l THEN 5150 

* 

GOTO 5160* 

4235 IF ns(p,tp)<5-tK THEN 4270* 

sp=tp:IF ABS{wp-p)=2 THEN 5160* 



IF tL=0 THEN 5160* 

GOSUB 5300: IF f=l THEN 5400* 

GOTO 5160* 

4270 IF ns{p,tp)=0 THEN 5100* 

IF ABS{wp-p)<>2 THEN 4310* 

IF (tL=l) OR (ps=3) THEN 5100* 

IF c(wp, pc(wp) )=5 THEN SI00* 

IF ciwp,pc(wp) )<4 THEN sp=tp:GOT 

O 5160* 

GOSUB 52501 IF f=l THEN sp=tp:GOT 

O 5160* 

GOTO 5100* 

4310 IF tL=0 THEN sp=tp:G0TO 516 

0* 

GOSUB 5300: IF f=l THEN sp=tp:GOT 

5400* 

GOTO 5100* 

5000 f=0:FOR a=0 TO 4: IF c(p,a)> 

5 THEN f=l* 

NEXT: RETURN * 

5050 f=-l:FOR a=0 TO 4:IF {sL(3( 

p,a))=0) AND (s(p,a)<>tp) THEN I 

F o(p,a)=5 THEN f=a* 

NEXT: IF f>-l THEN 5070* 

Lc=-1:F0R a=0 TO 4:IF s(p,a)<>tp 

THEN IF c(p,a)>Lc THEN Lc=c{p,a) 

:f=a* 
NEXT* 

5070 RETURN * 

5100 IF ns(p,tp)>0 THEN 5125* 

sp=-l:FOR a=0 TO 4* 

IF s(p,a}<>tp THEN IF (c(p,a)=5) 
AND (ns(p,s(p,a) )>1) THEN sp=sCp 

,a)* 

NEXT: IF sp>-l THEN 5160* 

GOTO 5180* 

5125 v=4:f=-l:F0R a-0 TO 4* 

IF s(p,a)=tp THEN 5135* 

IF (ns(p,s(p,a) )<>1) OR (sL{s(p, 

a) )=1) THEN 5135* 

IF (c{p,a)>=0) AND (c(p,a}<v) TH 

EN v=c(p, a) : f=a* 

5135 NEXT: IF f=-l THEN 5180* 

RETURN * 

5150 IF ps=3 THEN 5400* 

v=-l:FOR a=0 TO 4:IF s(p,a)=sp T 

HEN IF c(p,a)>v THEN v=c(p,a):f= 

a* 

NEXT: RETURN * 

5160 v=10:FOR a=0 TO 4* 

IF s(p,a)=sp TiiEN IF (c(p,a)>-0) 

AND (c(p,a)<v) THEN v=c(p,a):E=a 

* 

NEXT: RETURN * 

5180 v=10:FOR a=0 TO 4:IF sCp.a) 

<>tp THEN IF c(p,a)>-l THEN IF c 

(p,a)<v THEN v=c(p,a) : f=a* 

NEXT: RETURN * 

5200 ht=B:f=0* 

5205 ht=ht-l:IF ht>0 THEN IF cL( 

ht,tp)=l THEN 5205* 

IF lit<0 THEN 5240* 

FOR a=0 TO 4: IF s(p,a)=tp THEN I 

F c(p,a)=ht THEN f=l* 

NEXT * 

5240 RETURN * 

5250 f=l:FOR a=0 TO 4:IF c(p,a>> 

-i THEN IF (s(p,a)<>tp) AND (c(p 
,a)<5) THEN f=0* 

NEXT: RETURN * 

5300 f=0:FOR a=0 TO 4:IF s(p,a)= 

sCwp,pc(wp)) THEN IF c(p,a)>c(wp 
,pc(wp)} THEN f=l* 

NEXT: RETURN * 

5350 f=0:FOR a=0 TO 4:IF s(p,a)= 

s(wp,pc(wp)) THEN IF c(p,a)-c(wp 
,pc(wp) )=1 THEN f=l* 

NEXT: RETURN * 

5400 d=10:FOR a=0 TO 4* 

IF s(p,a)=s(wp,pc(wp) ) THEN e=c( 

p,a)-c(wp,pc(wp)):IF (e<d) AND ( 

e>0) THEN d=e:f=a* 

NEXT: RETURN * 



EraseCard: PUT( (y-l)*8-2, (x-l)*B 

-1) ,ec,PSET: RETURN* 

* 

Winner:* 

xl=y-lsyl=x-l:x=(xH-2)*B;y-(yl+2 

)*8+3:xl=xl*8-3:yl=Yl*8-2* 

CIRCLE (x,y),e,0:PAINT (x,y),0* 

FOR i=l TO 100: NEXT* 

FOR i=l TO 3:LINE { xl-i , y 1 -i ) - ( X 

l+i+38,yl+i+42) , i+5,b:NEXT* 

FOR i=-3 TO 1 STEP -1: CIRCLE (x,y 

) ,i*2,i+5:PAINT ( x , y > , i+5 : NEXT * 

r=l:FOR i=0 TO 5 : r=r- . 07 : cy ( i ) =r 

:NEXT* 

FOR i=l TO 50: FOR p=l TO 200:NEX 

T:j=i MOD 6* 

PALETTE (i MOD 3 ) +6 , cy ( j ) , cy ( j ) , 

0:NEXT* 

FOR i=3 TO 1 STEP -1:LINE (xl-i, 

yl-i)-(xl+i+3a,yl+i+42) ,0,b:FOR 

j=l TO 50: NEXT j,i * 

CIRCLE (x,y) ,B,4:PAINT (x,y),4* 

RETURN* 

* 

InitShapes : * 

RESTORE InitShapes* 

FOR j=0 TO 3: FOR i=0 TO 30:* 

READ a?:sb(i, j)=VAL("&H"+a?) :NEX 

T i, j* 

RESTORE Hand:FOR i=0 TO 75:* 

READ a5:hb{i)=VAL("&H"+aS) :NEXT: 

RETURN* 

* 

Diamond: DATA B, 9 , 3 , 400 , E00, 1F00 

,3FB0,7FC0* 

DATA 3F80, 1F00 , EO0 , 400 , 400 , £00, 1 

F00,3F80* 

DATA 7FC0, SFSa, lF00,E00,400,FaE0 

,P1E0,E0E0* 

DATA C060,a020,C060,E0E0, F1E0,FB 

E0,0* 

* 

CLub: DATA B, 9, 3, 0,0, 0,0,0* 

DATA 0,0,0,0, E00, 1F00,1F00,7FC0* 

DATA FFE0, FFE0, 7 5C0,E00, 1F00, FIE 

0, E0E0, E0E0* 

DATA 8020,0,0,8A20,F1E0, E0E0,0* 

* 

Heart: DATA B, 9 , 3, 71C0, FBE0.FFE0 

,FFE0,7FC0* 

DATA 3F80, 1F00, £30,400, 7100, FBE0 

,FFE0,FFE0* 

DATA 7FC0,3F80,lF00,E00,4a0,BE20 

,400,0* 

DATA 0, 8020,0060, E0E0,F1E0,FBE0, 

0* 

* 

Spade: DATA B, 9, 3, 0,0, 0,0,0* 

DATA 0, 0,0, 0,400, 400, E00, 1F00* 

DATA 3F80, 7FC0, 75C0, E00, 1F00, FBE 

0,FBE0,F1E0* 

DATA E0E0,C060, a020,aA20, F1E0, E0 

E0,0* 

* 

Hand: * 

DATA E, 12,4,0, 2C0, 960, 15A0, 588* 

DATA A3C,23C,20C,4I3C, 2054, 1168, 

58,120* 

DATA 40,140,2A0, 540,AA0,600,340, 

1960* 

DATA CA0,CAe,46AC,66A4,66A4, 37EC 

, IFFCFFS* 

DATA FFe,FF0,FF0, 17E0, 7E0, F60,AA 

0,FFFC* 

DATA FFFC,FFFC,FFFC,FFFC,FFFC,FF 

FC,FFFC,FFFC* 

DATA PPFC,FFFC,FFFC,PFFC,FFFC,FF 

FCFFFC.FFFC* 

DATA FFFC,600,FC0,3FE0, 3FE0, 1FF8 

,DFFC,EFFC* 

DATA EFFC,FFFC,7FFC,3FF8, 1FF8,1F 

F0,1FF0, IFEa* 

DATA FE0,F60,AA0,0* @ 



64 COMPUTEI March 1987 




Readers' Feedback 



The Editors and Readers of COMPUTE! 



// you have any questions, comments, or 
suggestions you would like to see ad- 
dressed in this column, write to "Readers' 
Feedback," COMPUTE!, P.O. Box 5406, 
Greensboro, NC 27403. Due to the volume 
of mail we receive, we regret that we 
cannot provide personal answers to tech- 
nical questions. 



Overseas Telecomputing 

In reference to M. H. Trenker's letter in 
the November 1986 issue of COM- 
PUTE!, I would like to provide some 
additional information. I have been 
using American-built Commodore and 
Zenith computer systems in West Ger- 
many without any modifications except 
for suitable stepdown power transform- 
ers. Some people might think that they 
will no longer have access to the 
CompuServe information service after 
they move to Europe. That's not true. 
Here in Germany, you can access 
CompuServe through a German tele- 
phone system called Datex-P. 

Charles H. Pease, Jr. 

Thanks for the advice. Mr. Trenker's letter 
about using a U.S. computer system in 
Poland has generated a blizzard of mail 
from COMPUTE! readers who use Commo- 
dores, Apples, Ataris, IBM PCs, and many 
other systems in virtually every corner of 
the globe. The next two letters contain 
additional information about telecomput- 
ing outside the United States and Cajiada. 

Your readers should know that direct- 
connect modems purchased in the 
United States do not work in Germany, 
since the phones use a different current 
and do not have modular jacks. The 
simplest solution is to use a modem 
with acoustic couplers rather than 
direct-line connections. 

Sgt. Randall Harper 

This letter is based on my own expe- 
rience and that of many members of my 
users group who have bought Commo- 
dore computers in the United States 
and brought them to countries with 
220V/50 Hz current. Basically, all of 
your explanations are right. A complete 
system will work flawlessly with only a 
stepdown transformer. Beware of volt- 
age converters, however; I have dam- 



aged a printer beyond repair with such 
a device. Two points should be added. 
First, a U.S. Commodore computer (ex- 
cept the Amiga) can use a 220V 1541 or 
1571 disk drive without harm. Second, 
many European countries do not pro- 
vide grounded outlets; since the 
1541/1571 disk drive may not work 
correctly unless grounded, you may 
need to ground the device yourself. 

For telecommunications, most Eu- 
ropean countries use the CCIT rather 
than the Bell standard. This may make 
a Bell-standard modem useless except 
for communicating with a BBS back in 
the United States. In some countries, 
the use of a modem not supplied by the 
local telephone company is a felony. 
An exception is Israel, where the Bell 
standard is accepted. The phone outlets 
are different, but you can purchase Bell 
phone connectors at electronics stores. 

Dr. Alexander Burcat 

Technion Commodore User's Group 

Haifa, Israel 

Cleaner Than Clean 

This is in reference to the letters about 
the Atari BASIC INPUT statement in 
the October and December 1986 issues. 
One disadvantage of substituting IN- 
PUT #16 for INPUT in an existing pro- 
gram is that you have to edit every 
INPUT statement manually. For any- 
one who has BASIC XL, there's an easi- 
er way. The SET statement allows you 
to specify what character BASIC uses 
for the INPUT prompt. Thus, SET 2,32 
replaces the question mark with a 
space, character 32. The second number 
is the ATASCIl value of the character 
you want to use. 

Garry Kaiser 

Thank you for the information. Atari own- 
ers should note that this method works 
only with BASIC XL, the extended BASIC 
from OSS Precision Software. If you have 
BASIC XL, you can put a single SET 
statement at the beginning of a program 
without having to change every INPUT 
statement in the code. 



More Amiga BASIC Tips 

In the December 1986 installment of 
"Readers' Feedback," you answered a 
reader's question about the LIBRARY 



command and .bmap files in Amiga 
BASIC. Your answer is correct. How- 
ever, there is an easier way to take care 
of the problem without changing direc- 
tories with CHOIR or always putting 
the .bmap file in the current directory. 
When Amiga BASIC encounters a LI- 
BRARY statement, it first looks in the 
current directory to find the designated 
.bmap file. If the file is not found, 
BASIC then looks in the LIBS subdirec- 
tory of the disk that you booted with. 
Thus, you can simply copy all the 
needed .bmap files to' the LIBS sub- 
directory of the disk you use to boot the 
computer. The system automatically 
prompts you to insert the correct disk if 
it isn't currently in the drive. 

David Grothe 

Thank you for the additional information. 
To minimize disk-swapping, particularly 
on single-drive systems, many Amiga 
owners make a special work disk for use 
with BASIC. Here's how to do it: Make a 
copy of the Workbench disk and rename 
the disk; then copy Amiga BASIC onto it. 
Finally, copy the .bmap files you need into 
the LIBS subdirectory of your work disk. If 
you boot up with that disk, BASIC and the 
.bmap files can all be accessed without 
swapping disks. 

A slight disadvantage of this method 
is that the whole-disk copy includes many 
files that are rarely, if ever, needed for 
BASIC programming. If you get rid of 
twnessential files, you'll have much more 
space for BASIC programs. For instance, 
you can gain about 160,000 bytes of free 
space by deleting the clock and the DE- 
MOS, SYSTEM, and UTILITIES subdirec- 
tories. The DEVS/PRINTERS subdirectory 
contains 13 different printer drivers, 
which range anywhere from 1084 to 5248 
bytes in size: You can free up even more 
disk space by eliminating unneeded driver 
files from this subdirectory. The command 
subdirectory (C) contains DOS commands 
that few people use in connection with 
BASIC: For example, the ED, EDIT, and 
S<4y commands take up nearly 47,000 
bytes of extra space in all. 

To delete a file, open a CLI window 
from the Workbench and type DELETE 
followed by the name of the file you want 
to eliminate. The ALL command lets you 
DELETE everything in a designated sub- 
directory. For instance, DELETE DEMOS 



MOfCh 1967 COMPUTEI 65 



IBM 



CORDATA 400 

DESKTOP.*./909 CORDATA 400XT- 

CORDATA 400 ^^ ^^^^* '^"^^^ 



CORDATA 400XT 



CAAA CORDATA 400X1 

PORTABLE*..r909 PORTABLE 20 MEG-..f 1499 



THE PC CLONE YOU HAVE BEEN HEARING ABOUT 

BLUE CHIP PC . . *679 

Contains 1-360K Dish Drive. 5I2K Memory, 
6 Ejipanilon Slots, PiiraUe\ & Serial IIO, TTL Output 



MS DOS 3.2 &GW BASIC '99.95 

BLUE CHIP 360K DISK DRIVE '129 

BLUE CHIP HL GREEN MONITOR .,'99.95 



■Contains 2-360K Disk Drives, 51 2K 
Memory, Green Monitor 



•Contains 1.360K Disk Drive, 512K Memory, 20MB 
Hard Olsk, Green Monitor 



MODEM PSACnCAl. MODEM 1200 



1159 



LASER T28 

COMPATIBLE COMPUTER 

Includes • Spreadsheet • * ^ ^^ ^ 

*395 



APPLE 



Database • 

• Word Processor 



APPLE INTERFACES 

Grappler + W/i6K 1 19 95 Grappler C 79.9S 

Grappler -(- 79.95 Serial Qrappfer + . , 74.95 



APPLE HE AND lie 
PRINTER PACKAGES 

NX-10 PRINTERS 

GRAPPLER +/C 

PANASONIC 10811 & 
GRAPPLER +C 



«288 
^298 



Commodore 64C 

With Geos ... 
Commodore I54IC 



Call 
Call 



^m ^J iVI iw I ^J mJ ^J i m E NX-IO l Xetec Supergraphic 



Panasonic 10801 ( 



269 

Xetec Supergraphic .'2S9 




ACCLU 

Mach V-Cart . , . 
Leader Qoard . . 
Tournament Disk 
Executive Disk 



21.95 
24.95 
16.95 
I6.9S 



Robotic Workshop Call 

iwcsopROse 

See Atari i 30XE section 
for itents and prices. 

ABACUS SOFTWARE 

ChDrtplk 17.95 

Csd.pak 27.95 

Powerplan 27.95 

Super C Compiler .39,95 

Super Pascal 39.9$ 

Basic Compiler . . .27.95 
Rjrtil 27.95 

BATreisiestNCLtfflSD 

Bl-SOCard 59.95 

Papercllp/Spell . , .29.95 

Consultant 37.95 

HomePak 16.95 

Fast Load 24.95 

Summer Games I* . 24.95 
World Karate 19.95 

Super Cycle 24.95 

iee Afpit Srakm fa ttsi ot 
ItfrmiPTKfs 



SSI 

Battle/Antietam . 
Fanner Grenider . 

USAAF 

Kampgruppe . . , . 
Broadside . . 
Carrier Force - - - 
Comp. Ambush . . 

Field of Fire 

Gemstone. 

Warrior 

Imp. Oalaclum . - 

Computer 

Baseball . 

Computer 

Quarterback 

Wizards Crown . 

Gerrysburg , . . . 

Phantasie 

Mech Brigade . , 

Warship 

SH(NOATAmj 

Rings of Ziltin 
Phantasie 1/ 
BattI- Group . . . 
Roadwar 2000 . 
Gemstone Heaier 
Shard of Spring 



32.95 
24.95 
37.95 
37.95 
24.95 
37.95 
37.95 
24.95 

21.95 
24.95 

24.95 

24.95 
27-95 
39.95 
24.95 
39.95 
39.95 



27.95 
27.95 
39.95 
27.95 
2095 
27.95 



BUECreONIC ARTS 

Amnesia ^7,95 

SkylDi 24.95 

AnlcFoi 24.95 

Marble Madness ..22.95 

Moebius .27.95 

Adtf. Construct . . .27.95 

Ultima IV 41.95 

Bard's Tale 27.95 

i-ordaof 

Conquest 24.95 

Ciiessmaaler 

2000 27.95 

Ultimate Wizard . .24.95 

Mind Mirror 24.95 

Auto Dual 34.95 

Ogre 27.95 

Bard's Tale II 27.95 

Battle Front 27.95 

Robot Rascals. . . .27.95 
Heart ot Africa .. .11.95 

America Cup 23.95 

Chickamauga . . . .23.95 
flom va Patton. . , .27,95 
Murder Party 23.95 

See Aisri I30xt section 
for test of items * prices. 



msGeajmrnm commodore 64 



FlghtNlsht 19.95 

Hardball 19.95 

2 on 2 Baskelball .23.95 
Sublogic Baseball .34.95 

The Pawn 29.95 

Elite 23.95 

Bab n Wrestle ...20.95 
Gunslinger . - , . . .18.95 

Ikarl Warr 23.95 

Breakthrough . . . .23.95 

GeodeK ......... 27.95 

Geochart ....... .27,95 

Geo Publish 34.95 

Geofile . 34,95 

Geocalc 34.95 

Enchant Trilogy . ..47.95 



Gurtship 23.95 

Champ 

8asebBlla6 23.95 

Shanghai 23.95 

Tass Times 23.95 

Transformers 23.95 

Sub Mission 20.95 

Ultima III 34.95 

Tracker 29.95 

Pel Speed 34.95 

GEOS Desk Pak .,23.95 
GEOS Font Pak 
Oxiord Pascal . 
Bob N' Wrestle 
Clip Am or 3 . 

Clip Anil 27.95 

Cert. Maker Lib 1 .23.95 



23.95 
.34.95 
.20.95 

19.95 



Certilicate Maker 
Animatlor 

Station 

Tag Team 

Wrestling 

Ace of Aces 

Disney Card .... 
Disney Comic . . . 
Accolade 

Foolball 

WWFMlcra 

Wroslling 

Commando 

Hacker II 

Love Quest 

Thunderc hopper. 



23,95 

49.95 

23.95 
19.95 
23.95 
23.95 

19.95 

27.95 
23.95 
23.95 
39.95 
20.95 



Fonlmasterll 32.95 

Print Shop 2B.95 

Superbase64 ... .47.95 

Gamemaker 27.95 

Karate Champ . . . .25.95 
Prt. Shop Compan 27,95 
Prl. Shop 

Graphics 17.95 

Jet 29.95 

Printmasler 21.95 

Newsroom 34.95 

Geos 39.95 

Up Periscope ....20.95 

Pocket Pak 64 39:95 

Contriver Mouse.. 39. 95 
Wargame Conslruct20.95 
War/S. Pacific 39.95 



AVATEX I2CX)HC External 
Hayes-Compatible 135 



STAR MICRONICS 

rjxto .209 

NLIOC .179 

NL-10 Call 

NX-15 339 

SD-10 )09 

ND-IS , Call 

SR-10 459 

MHT5 Call 

NB-24)15 Call 

Ppwertype 229 



PRINTERS 

Sefkosha lOOOVC Call 

Panasonic lOSOl 199 

Panssonlc 1091 1 259 

Ol!lmate20 139 

CItlien 120 D Call 

Okldata 120 Call 

Panasonic 1092 Call 

Canon Printers Call 

Brother Call 



PRINTER BUFFERS 

Mlcrobufter/Mlni U-Buff 

MK 99.95 64 K 99 .« 

MONITORS '^ 

i^agnovox Amber «9 

Magnovox 3562 iWBCOIWP 269 

Ssmsung H" Cos^osEie 149 

Commocore 1902 279 

Green or Amtjw TTi C*» 



ANIMATION STATION 
GUAPHICS TABLET 



49.95 



ATARI 1 30XE 

COMPUTER 

PACKAGE 



ATARI XE • XL • 400/800 

ATARI / 



IQSCDi^Or^ve 

1027 Prmttr 

S Free Pffces of Aran Softwaft 

Ttvs a a shipped price ^r/whcte in Conintf^ai USA^ 



*395 



ATARI 
130XE 

COMPUTER 



tnOu>5Cwo 

^raiTJoui 
(3)Ckct. 

Jhiihs shipped pike anywtvre 
m ContffientsI USA. 



«139 



ATAR1 1050 
DISK DRIVE 

Includes 



DOS 
2.S 



^35 



Thiitsa shipped pf ice anywhere 
tnCcnUnemlUSA. 



S99 



ATARI 
1027 
PRINTER . . 

[Ur.tJI ED ID SUPPLY ON HAf^DI 

ATARf 

XMMBOi til 
PRINTER . 



ATARI 850 
INTERFACE 



'!99 
*115 



MONtTOltS 




THOMSON 




VMSIOJIG-HL/Ojcw 


129 


VM3i07-IA.m/jVntm 


135 


CM343ll.MI3w/£GA. . 


..SIJ 


CMJiJIia-RCSHJIlB 


.■m 


CMif,«2Sl-l'|-SGBMKlRn . 


. 949, 


irsae/conipw/ijacaijiK . 


. .279 



INTERFACE FOR OKIMATE 20 

Atari ST, - 60 Apple IJE 70 
Amiga. 60" Apple IIC 77 



EST 1982 



HO flon 17882 Milwaukee. Wl 53217 

ORDER LINES OPEN 

Mon-Fn 11 am -7pm CST 

Sal 12pm -Spm. CST 



K NO SURCHARGE FOR MASTERCARD & VISA 



To Order Call Toll Free 

800-558-0003 



For Technical info., Orderinquiries.orforWisc. Orders 

414-351-2007 

TELEX NUMBER 9102406440 

DflOERIHGINFOaMATION: Please spotilysjsltm.Foi fasideliverysendcasniei ii;litci<iji nione^oidei Per sDjial ami i.uiii|jiiiivi.:itcks allow 14 
business days to Lleai SchoolPOs welcome C.O.O.diargesareSS.OQIiiConlinenlal U S A in elude S3 00 fni S0flwaie*(dei5 4" shipping for 
hardwaie iniriiinuniSJOO MasieiCaid and Visa orders please incliiilecaul it enpitationdaleandsignauneWliesideiils please include 5 
sales lax HI AK FPOAPO PueiloRicoand Canadian orders, please adds shipping,mlnimuni$5.00.Allothef loreignorSerjaddlS'oSlilpping, 
niiniiiiumSlD.DO.AIIordcrs shipped oulsidelheConitnenialUS A aieshippedlirslclassiiisuredUS mail II loieign shipping chaigesexceed 
iheminimurTiamounl you will bechargediheaddiiionalamounllo get vompackageioynu quickly and salely All goods aie new and include 
factory warranly. Due 10 our low prices all sales are final All dslEcliuE relurns must haue a returp authDrizalion numtier. Please call |414l 351-20071O 
obtain an R.A e or your reiurn will not be accepted Priced and ai-ailabilitv subiect to ctianae without nonce 



ATARI XE/XL/400/800 
SUPER PRINTER PACKAGES 

NX-10 & SUPRA 1150 259 

PANASONIC lOaOr S SURRA 1150 2S9 

ATARI PRINTER INTERFAm 

SUPRA nSO . . 59.95 

P.R. CONNECTJOM . : 64.95 

XETEC GRAPHIC AT . 39.95 

ATARI DIRECT-CONNEa MODEMS 

SUPRA lOOOF ATARI XM-301 

MODEM 39-95 MODEM 39.95 

AMIGA COMPUTEIt 
SYSTEM PACKAGE 

'AMtGACOMPintS •AMQA5I2ICSAMEXPANKS 
■ AMIGA iCeOMOMTOe < AMIGA 1010 3.5 DISK DfilVE 

CALL FOR 



:ACCPU\DE 

Haidball 24.95 

Mean 18 31.95 

PS! Trading Co. ... 24. 9S 
Course Disk T6.95 

f SiHNbscApe: " 

Indiana jQnes 

Hevenge 25.95 

Infiltrator 20.95 

Bop N Wrestle. . . .20.95 
Balance o1 Power .31.95 
Detender/Crown . .31.95 

. SPnfNGBOAHD 

Certilicate Maker . 36.9a 
SEE APPLE SECTIOH FOR 
R£3T0FITEHS A P•^ICE•^ 



COMMODORE 

128 

C-128 Compuler . . . . Cal I 
MPS 1200 PRINTER. Call 

1571 Disk Drive Call 

1902 Monitor 279 

1670 Modem 139 

1351 Mouse 44.95 

1760 512K 

Expander 169 

SUPER 128 

COMPUTER 

PACKAGE 

Commodore 128 
1571 Disk Drive 
1902 Monitor QA I | 

COMMODORE 
128 SOFTWARE 

Basic Compiler 12339.95 

ColMl 12S 39.95 

CadPak 128 39.95 

Super C Compiler 39 95 
Chart Pak 128 27 95 

Speed Term 128 27 95 
Superbase 128 62 95 
Superscript . . 44 95 

SwIHcalc 128 . 44 95 

Data Manager 128 44 95 
Worflwfiler 128 44 95 
Fleet System III 49 95 

Pocket Filer 2 36.95 

Pocket Writer 2 . ..36.95 
Pocket Planner 2. .36.95 
Sylvia Porter. 128. 44.95 

MacN128 32.95 

Visastar 12B 79.95 

Vrsawrite 12B 69.95 

Partner 126 49.95 

Super Pascal 128 .39.95 
Super Pak 128 .. . .46.95 



ATARI ST 

Atari 1040ST-HGB 
System Call 

Atari 1040ST- 
Monochrome Sys Call 
Ata-iSEOSt-RGB 
System Call 

Atari SaOST- 
MonochromeSys Call 
WE WARRANTY ALL 
ATARI ST COMPUTERS 
PURCHASED PROM 
COMPUT ABILITY FOR 
NINETY DAYS 

SF314 DS-DD Disk 

Drive 199 

Supra 20 MEG 3,5 
Inch Hard Drive 679 



A««iA ARCADE 
GAMJES 

Microleague 

Baseball 39.95 

Ttie Pawn .,,,.. ,29.95 
Flight Simulator 11.34.95 

Kings Quest II 34.95 

Jet 34.95 

Silent Service .,,,27.95 

Mean 18 27.95 

Leader Board . . . .27.95 
Tenth Frame .... .27.95 

Winter Games 27.95 

Strip Poker 29.95 

World Games . . . .27.95 

Deep Space 29.95 

Arena 24.95 

Publisher 129.95 

Stargiider 29.55 

Gr, Slam Tennis. . .34.95 
Harrier strike . . . .34.95 

Gato 31.95 

Kampgruppe 39.95 



.BROpgRBMND ,, 

Karatei<a 21.95 

Print Shop 37.35 
Graphic 

Librery1ar3 21.95 
Print Shop 

Companion 31.95 

Toy Shop 42.95 

Type 31.95 

Variable Feast 39. g.!; 

uNtsoNmcmm 

Pnnttnaster 36 95 

Art Gallery 1 24.95 

ArtGaiiery2 18,95 
Hard Disk 

^^ichyp 54 9S 



EPYX 

S£E APPLE SECTION 

FOR ITEMS & PRICES 

ELECrRONtCARti 

Amnesia 29.95 

Grand Slam 

Bridge 39.95 

Murder Party 27.95 
Radio Baseball 27.95 
Starlllght 32.95 

World Tour Goll 34.95 
Ultima III 39.95 

Ultima IV 39,95 

>> SIMON i:^ "■■?; 

SChftJSTER 

SEE APPLE SECTION 
FOR ITEMS S PRICES 



IIMFOCOM 

Forever Voyaging .29.95 

Bally Hoo 25. 9S 

Cuthroats 25,95 

Hitchiker 25,95 

Infidel 28,95 

Leather Goddess .25.95 
Moonmist . . . , _ .25.95 

Pfanetlall 25.95 

Seastalker 25.95 

Trinity 25.95 

WJshbrlnger 25.95 

ZorkI 25.95 

Zorkil or III 28.95 

Hollywood Hijinx . , ,Caii 
Enchanter Trilogy . 52.95 



Gunship 2S.95 

Alternate Reality. .31.95 

Ogre 27.95 

Cadd2.0 64.95 

star Trek II 25.9S 

Shanghai 25,95 

FllghfSim.il 36,95 

Startleetl 34.95 

GFL Football 25.95 

2 On 2 Basketball .25.95 
Champ Baseball . .25.95 



Kmg's 

OuestI, II, orlll 31.95 

Smart Money 52.95 

Space Quest 3195 

Black Cauldron 25 95 



(WlSCESXANeoUS IBM 

Hacker 29.95 

Hacker II 25,95 

Shanghai 25.95 

Tass Times 25.95 

Strip Poster 25.95 

isgurPortteiio. ..164.95 

Starlleetl 34.95 

Alternate Reality. .31.95 

Math Blaster 31. 9S 

Alge-Blaster ,31.95 

DS Backup 44,95 

Orbiler 31.95 

Pawn 29,95 

Championship 

Golf 31.96 

Learning Company .Call 
ContlicOVieSnam .25.95 
Decision/Desert . .25.95 
F-IS Strilw EagiB .21.9!; 



Crusade in Europe £5.95 
Silent Service . . . .21.95 
Micrt} League 

Baseball 25.95 

Universe ....... .64.95 

Universe II 47,95 

Fantasy 42,95 

Fcntasy Fonts Call 

Wiardry 39. 9S 

Gato 24.95 

Jet 34.95 

Sublogic Basetiali . 34.95 
Sublogic Football .34.95 

Falcon 31.95 

Rings of Zilfrn 25.95 

Gettysburg 39.95 

Oper, Market Gard 32,95 
Tertn Paper Writer 38 95 
Phsntaste 25 95 



ACTIVISIOW 
GamDmaker 31 95 

Hacker II 25.95 

Labyrinth 25,95 

Little Computer 

People .25.95 

Shanghai 25,95 

Tass Times 25.95 

SpintJizzy ...... .22.95 

Rocky Horror ....22,95 

ZoidS 22.95 

GBA Basketball . . .25.95 
Champ Baseball . .25.95 

GFL Football 25.95 

Greeting Card ,, ..25.95 

5f!(KW:ANDSi:M0JIERi 
Chem Lab 
LovGJoy Sat 
Real Estate Invest 
Typing Tutor 
Wine Cellar 
Lasser Moiiey Mgr 



jKt»i»tM 'momnfif^nw 



BHODCRBUND 
Aifheart 22 95 

Ancient Art War . .25.95 

Animate .44.95 

BanK Street 

Series (Ea) 44.95 

Fantavlsion ..... .31.95 

Holiday Graphics 

Library 16.95 

Print Shop 31.95 

Graphics Library 

I, if or III 16.95 

Karateka .21.95 

On Balance 64.95 

Print Shop 

Companion 25.95 

Science Tool Kit ..44.95 

Toy Shop 39.95 

Type 28.95 

Variable Feast .,. ,31.95 
Carmen Sandtego . .Call 



etBCTBomcAtas 

29.9S 



Certificate Maker 
Clip Art 1 or3 .. 

Clip Art 2 25.95 

Certificate Lib 1 . .22.95 



25.95 
39.95 
64.95 
31,95 
44.95 
57.95 

SPBajCSQl!*!}. <:..,:,;■.:: 

.31.95 Games/Children 22,95 

19,95 Graphics Expander 25,95 

Newsroom 37,95 

Piece ol Cake Math 22.95 



APPLE ACCESSORIES 

Ivlach llJoystick £?.95 MocklnqtMwrd B 

34,95 ■■ ■■ " 

27 S5 

zA 3" 



Mach III Joystick 
PadrfSesiiiks 
Mockmgboard ^ 



Wockingboard G 
Mocl'ingbcard D 

T^C 10 l3> J K. 



59,85 
114.9S 
124 95 

24 9S 



Amnesia 
Artie Fox 
Bard's Tale 
Bard's Taje II 
Battle Front 
Cftessmaster 
2000 

Dark Lord 
Lords ol 
Conquest 
Murder Parly 
Robot Rascals 
Ultima I 
Ultima III 
Ultima IV 
Ogre 
Moebius 
Skylox 
Music 

Constrirction 
Marble Madness 
7 Cities of Gold 
Scrabble 

Champioriship 
Wrestling 
World Games 
Destroyer 
Apshai Trilogy 
Movie Monster 
Winter Gaines 



27.95 
29.95 
34,95 
27.95 

29.95 
23.95 

27.95 
27.95 
27.95 
27.95 
39.95 
39.95 
27.95 
39.95 
27,95 

11,95 
23,95 
11.95 
27,95 



24.95 
24.95 
24,95 
24 95 
24 95 
24.95 



INFOCOfW 

SEE IBM SECTION FOR 
ITEMS ANO PRICES 

SSI,, :,..:::. S 

SEEC0MM0OORE64FOR 
ITEMS AND PRICES 



Sub Mission 
Infiltrator 
Boh N' Wrestle 
Color Me 
Dick Francis 



(l^lfJOSCAPE 

25.95 James Bond 
Ram bo 
The Mist 
Perfect Score 



20.95 
20.95 
19.95 
25.95 



25.95 
25.95 
25.95 
44.9S 



Balance of Power 31.95 



/\PPtE MISCEUJ^^EOUS 



Fight Night 21,95 

Hardball 21.95 

Sundog 24.95 

TheHobbit 23.95 

Advanced Ideas .,., Call 

Strip Poker 19,95 

Video Vegas 19,95 

Mastering/ 

College Board, , ,114,95 

Home Account , , ,59.95 

Portal 29,95 

Thunder Choper . ,20,95 

Up Periscope 20,95 

Gram Gremlins ...31,95 

Gunslinger 18,95 

Theatre Eumpe, , ,21,95 

PSl Trading 21,95 

Autoduei 34,95 

Alt, Reality ?4,95 

Adv, Construct , , ,34,95 
Odesta Chess , , , ,47,95 

Universe II 47,95 

Lunar Eitplorer . . .20.95 

Stargiider 29.95 

War In S. Pacific ..39.95 
Star TiBk 11 25 95 



Startleet 1 


34.95 


Karate Champ 


22.95 


Kung Fu Master 


22.95 


Math Blaster 


31.95 


Alternate Reality 


24.96 


Alge-Blaster 


31.95 


Homeworker 


59.95 


Spell-It 


31.95 


Word Attack 


31-95 


DLM Software 


Call 


Deslgnware 


Call 


CompijlerSat 


54.95 


Elite 


23.95 


Pawn 


29.95 


Sargoniil 


25.95 


Writer Rabbit 


26,96 


Math Rabfiit 


25,95 


Frogger 


9,95 


Managing Your 




Money 


129,95 


F.15 Strike Eagle 


22.95 


Gunship 


25,95 


Silent Service 


22,95 


Microleague 




Baseball 


25 95 


Howard the Dui^ 


25.95 



Dollars & 

Sense HE 

Superbase 

Random House 

Scholastic 

Kings Quest III 

Blaok Cauldron 

Space Quest 

Smart Money 

Land of (he Dead 

Usurper 

Wizardry-Proving 31,95 

Wizardry-Legacy 25,95 

Wizardry-Diainonds 21,95 

VIP 

Professional 

Gato 

T-Shirt Shop 

Subfogic 

Baseball 

Sublogic Football 34,9S 

Flight Simulator 11 34,95 



74.95 
64,95 
Call 
Call 
31.95 
25,95 
31.95 
49,95 
29.95 
29.95 



169.95 
24.95 
31.96 

34.95 



J\lt4 



ABACUS 

Textpro 34 95 

Data Trieve Syi 34 95 
Text Designer 34 95 

PC Board 

Designer 169.95 

Assempro 34.95 

Pov^erpian 34.95 

Degas 27.95 

Super Graphics 33.95 

Degas Elite 52.95 

Easy Draw 54,95 

Graphic Artist 149,95 

IWFOCGMST 

SEE IBM SECTfJ FOR 
ITEMS AND PRICES 



Sja^^^gB^ipi 



Jet 
Animation 
Station 

Agatha Christie 
SflckyBearifa) 



27,95 

59 95 
25,95 
25.S5 



ST WORD 
PROCESSORS 

Paperclip Elite. . . .64.95 

WordvfrilerST 52.95 

Thundei* 27.95 

Regent Won! li . , , 64.S5 



MICHTRON 

Time Bandits 27 95 

Cornerman 34 95 

M-Dlsk 27.95 

Major fitotion 27.95 

Pers Money Man , , 34, 95 

Pinball Factor 27,96 

Eight Ball 20,95 

Animator 27,95 

Cards 27,95 

Michtron Utilities ,39,95 

Dot Driver ,34.95 

Laser Driver 34.95 

Super Conduclor .49.95 
Ml-Print Call 

.. ST UTIUTIES. ■:;. 

Macrodasii 27.95 

Music Studio 39.95 

ST Music Box . . . .34.95 
Time Link ,,.... .34.95 
Micro-Cookbook . .32.95 

tjbelmaster 27.95 

Publisher Call 

Pub. Partner Call 



STtANGUAGES 

Personal Pascal 49 95 

Mark Williams C 129 95 

Metacomco 

Pascal 74.95 

Macroassembler 59.95 

Lattice C 99.95 

Modula 11 54.95 

STBUSfNESS 

VIP Prof 169.96 

SwiftcalcSt 52.95 

Dae Easy .49.95 

Dae Payroll 39.95 

Dollars & Sense , .69.95 
Home Accountanl 34.95 
Bis Spreadsheet ..44.95 

STfetNfuffUTtES 

Typesetter 24.95 

Rubber Stamp. , , .24.95 

Printmasler 24,95 

Art Gallery I or II , ,19,95 

Fontwriter 27,95 

Megaton! ST 24,95 

Typeset Elite 32 95 



Ultima II 01 III 39 95 

Kings Quest II or III33 95 

Sundog 24,95 

Black Cauldron . , .27,95 
Apshai Trilogy . , . .27.95 
Dungeonmaster ..27.55 

Deep Space 29.95 

Arena 24,95 

rr 

COMMUNICATION 

PC Intercom 84,95 

l,S, Talft 39.95 

Home Pak 33.95 

Michtron BBS 2.0 49.95 
ST Talk 17.95 

?'^ST-OATVWASES..v 

DBMan tai\ 

Zoomracks II ... . ,99.95 
Datamanager St., .52.95 
Regent Base 64.95 



ST ADVEWTUHES 
Tass Times 33 95 

Alternate Reality . .33.95 

Autoduei 34.95 

Ogre 27.95 

Defender/Crown ..33.95 
Balance of F^wer .33.95 
Space Quest 33.95 



Portal 33 95 

The Pawn ,...,, ,29.95 
Guild OlTheives.. 29.95 

Mercenary 27.95 

Harrier Strike . . . .34.9^ 
Balance Of Power ,33.95 
Bard's Tale Call 



Sr ARCAOE GAMES 



PhanlasiQ 27.95 

Phantasle II 57.95 

Mean 18 29.95 

Leader Board . , . .24.95 

Brattacus 33,95 

Silent Service , ,.,27,95 
Flight Simulator II, 34, 95 
Championship 

Wrestling 24,95 

World Games , , , .24.95 
Chessmaster 2000 32,95 

Stargiider 29,95 

Little Comp People33,95 

ST Karate,, 24,95 

5-lS Strike Eagle 27 95 
Jet , 34 95 



Tenth Frame 27,95 

Shanghai 29,95 

3-0 Helicopter, . . .33.95 
Micro L.eBgue BB .39.95 
WWF Micro Wraslllng39.95 

Skytox 32,95 

Super Cycle 27.95 

Indoor Sports , , . , .Call 
High Roller SimulatorCall 
TWo/Two easkelball29.95 
.Star Raiders II , . , .20.95 

Gato , , , . . .33.95 

Space Station . . . ,24,95 

GFLFoolbell 29,95 

Champ Baseball 29. 9S 



A'cllo' 1195 

Seven Cil, of Gold 11,95 
Pinball 

Construction 11.95 

OneonOne 11,95 

Super Boulderdash 11,95 

Racing Destruction 11,96 

T-Down Football 11.95 

Mule 11.95 

Music Construction ^1.95 

INFOCOM 

See Commodore 64 sec- 
tion lorilcms and prices 



EiECTROMrCjMm 



^ * j|M»CI SQg'Tlli^^itg 



Age of Adventure 1 1 95 

Archon II 24.95 

Lords of Conquest 24.95 

Ogre 27.95 

Chessmaster 2000 27.96 

Ullimal 27,95 

Ultima III 34,95 

Ultima IV 41,95 

Autoduei 34,95 

Slarfleel I 34,95 

S9I ?■■: '^ 

See Commodore 64 sec- 
tion for ilcms nnd prices 



mcnopwcm 

silent Service 23 95 
F-1S Strike Eagle 23,96 
Decision in the 
Desert 27,95 

Conflict In 

Vietnam 27,95 

Ken Approach 19,95 
Top Gunner 19.95 

BRODEEiBMND 
Grapihfc 
Library 1,11 or 111 ,,17,95 

Karateka 20,95 

Print Shop Comp, ,27,95 



Mac65XL 
Action 
Basic XL 

All Tool Kits 

Syncalc 
Synfile 
Leader Board 
Tourn Dis)</ 
Leader Bd, 
Music Sludjo 
Basic XE 
Executive/Lead. Bd 
Fighter Command 



47 95 
47.95 
39,95 
19,95 
32.95 
32.95 
27.95 

16.95 
23.95 
49.95 
16,95 
39,95 



MISCELLANEOUS ATARI 



Atariwriter Plus , , 


,39.95 


Flight Simulator 11 


.34.95 


Megafont 11 


.17.95 
.21,95 






Page Designer , , 


Fight fJlgh! , , , 


19 95 










Rubber Stamp , . . 


,21,96 


Tenth Frame , , , , 


27.95 


P.S. Interface . . . . 


-19,95 


Super Huey 


.16,95 


Allernate Reality. 


,24,95 


Fooblltzsky 


,27.96 






Home Planetarium 


27.95 


Reality/Dungeon. 


,24.95 


Mall OnierMonslersl 1,95 


Mercenary 


,16.95 


Infiltrator 


.20.95 


Home Pak ..,,.. 


.16,95 


Bop N' Wrestle , . 


,20.95 


Paper CllpfSpell . 


,37,95 


Wargame Constr, 


,20,95 


6 Graph 


,27,95 


Spy vs Spy 


11,95 


Pommel yi Pjlton 


J7.g5 


Chic^.iin.iuq.n . 


2-1 95 



ACTivrsiON 

Hacker , , , 29,95 

Mindshadow 29.95 

Borrowed Time , , ,29,95 
Little Computer 

People 34,95 

Borrowed Time , . , 29,95 

Music Studio 39,95 

Shanghai 29.95 

Hackerll 34.95 

Tass Times 29.95 

GBA Basketball , , ,29,95 
Champ, Baseball,. 29, 95 

GFA Football 29,95 

Portal 34,95 



MINOSCAPE 

Mastertype 27,95 

Halley's Project 29,95 
Brataccus 34.95 

Racter 29.95 

SDl 34,95 

King of Chicago 34.95 
Defender of 

the Crown 34.95 

Sinbad 34.95 

Balance of Power 34.95 
■:.:JN«=OCOM :'■"::.■ 
SEE IBM SECTION FOR 
ITEMS AND TITLES 



Skylox 

Artie Fox 

Marble Madness 

Return/Atlantis 

Financial 

Cookbook 

Adventure 

Construction, 

Chessmaster 20O0 32.95 

instant Music 34.95 

Deluxe Print 69.96 

Deluxe Video 69.95 

Deluxe Paint 69.95 

Archon I or II 27.95 



ELECTRONIC ARTS 

27.95 OneonOne 



27.95 7 Cities ol Gold 
34.95 Slarfleet One 
Art Disk/ 
Deluxe Print 
Art Disk/Deluxe 
Paint 

Bard's Tale 
Music Const. 2.0 
Autoduei 
Ultima III 
Deluxe Palm II 
Grand Prix 



29.95 
34.95 



27.95 



27.95 
27.95 
35.95 

20.96 

20.95 
34.95 
G9.96 
34.95 
41.95 
84,95 
Call 



Earl Weaver Baseball Call 



AMrCA PRODUCTIVITY 

VIP Professional 169.95 f»1axiplan 

Analyze 2.0 94.95 Maxicom 

On-Llne 44.95 Maxidesk 

|'="'='''e «.95 Paperclip Elite 

0'?^"i^^ fill Degas Bile 

Art"rX™'i „-rii ■ ■ ^ill LDP Planner 

Art Gallery I or I . . 19.95 . nPLim,-!^ 

Zumafonll,llorlli21,95 ^CR^i * 

Impact 129,95 LPD Filer 

Aegis Draw 74,95 Logistlxs 

Aegis Modula II 

Animator/Images ,64,95 Gizmo 

Aegis Art 23,95 Superbase Amiga 99,95 

Page Setter 99,95 DB Man " " " " 



99.95 
34.95 
47.95 
84.95 
52.95 
79.95 
79.95 
79.96 
159.95 
64.95 
34.95 



99.95 



ALL gets rid of everything in DEMOS, 
including the subdirectory itself and all 
associated .info files. If you don't know 
what a file does, it's best to leave it on the 
disk. Many of the files and subdirectories 
on the Workbench disk are needed to boot 
the system and use BASIC. 



Seeing Double 

I have just recently purchased an Atari 
520ST. When I turned it on and loaded 
BASIC, 1 typed ?FRE(0) to find out how 
much memory I had for programming. 
The computer printed the number 
1 86704. As I began to write a program, 1 
noticed the bytes being whittled away 
very quickly. I also own a Commodore 
64 and have noticed that it's quite effi- 
cient when storing a BASIC program. 
What does the ST do with memory 
when it stores BASIC? On the ST, this 
line takes up 68 bytes of memory: 
10 7'Tin your faithful computer" 

Dale Zwicker 

ST BASIC stores two copies of the program 
in memory concurrently. The first copy is 
tokenized, meaning that keywords are 
compressed into one- or two-byte tokens. 
The second copy is in ASCII form and 
consists of the characters which you typed 
in when entering each line. It's difficult to 
imagine a justification for keeping a com- 
plete untokeynzed copy of the program in 
memory. Virtually every other version of 
BASIC stores the program only in the 
more compact tokenized form, expanding 
the tokens into BASIC words like PRINT 
only when you LIST the program or save it 
in ASCII form. 

When we entered the example line on 
various STs around our office, BASIC con- 
sistently required 70 bytes to store the 
line. Out of curiousity, we booted up GFA 
BASIC, the new BASIC from Germany, 
now marketed by MichTron (see "ST Out- 
look" elsewhere in this issue), and entered 
the same line. That version of BASIC 
stores the same line in only 32 bytes. A 
few bytes can be accounted for by the fact 
that GFA BASIC doesn't use line numbers. 
But the major difference clearly derives 
from the fact thai GFA BASIC stores only 
one copy of the program, not two. 

By the way, the example line you 
chose illustrates one of the worst possible 
cases. Counting the quotation marks, the 
line contains 18 ASCII characters which 
aren't compressed even in the tokenized 
copy of the program. Thus, the tokenized 
version of the line is only slightly smaller 
than the ASCII version. Many BASIC 
lines consist mainly of keywords, how- 
ever, which would tend to make the token- 
ized version considerably smaller. 

We found another puzzlittg anomaly 
while testing ST BASIC'S memory con- 
sumption. Enter NEW, then go to the EDIT 



window and type in the example line and 
press RETURN. Go to the COMMAND 
window and enter ?FRE(0). If you return to 
the EDIT window and press RETURN over 
the same line, BASIC loses a few more 
bytes, even though nothing new has been 
added to the program. If you continue to 
reenter the same line, BASIC uses up more 
and more memory, even though the pro- 
gram is functionally identical. Each reen- 
try of the line uses up anywhere from five 
to seven bytes of memory. 

Copying Machine 
Language Programs 

I subscribe to the COMPUTE! Commo- 
dore disk and find that I have several 
programs that I can't copy to another 
disk. All of them must be loaded with 
,8,1 rather than ,8. The 64 user's man- 
ual is no help, and Commodore 64 
BASIC has no special command for sav- 
ing machine language programs. My 
grandsons spent a lot of time during 
their last visit playing "High Rise" and 
"Miami Ice." They are not as careful 
with disks as I am, and I shudder to 
think what they would say if one of 
those programs were lost and I had no 
backup copy. Can you help? 

Elmer O. Pease 

Before you attempt to copy any machine 
laiiguage program, you must find out 
where it loads into memory. The article 
accompanying each COMPUTE! program 
indicates whether it is a nonrelocating 
program that needs special handling or a 
program like SpeedScript, which can be 
handled like a BASIC program. 

Some Commodore 64 ML programs 
can be copied without any special tricks 
because they are designed to load at the 
same address as a BASIC program (2049 
decimal, $0801 hexadecimal). Speed- 
Script is one such program: It can be 
loaded with LOAD "SPEEDSCRIPT',8 
and saved with SAVE "SPEEDSCRIPT ',8. 
As a rule, if the instructions for a program 
indicate that you can load it with ,8 and 
start it by typing RUN, it can be handled 
like a BASIC program. Simply load it as 
usual, insert a neiv disk, and save it as you 
would any BASIC program. If you LIST a 
program of this type, you will usually see 
a line like 10 SYS2061. 

Other machine language programs 
need to load at a different address. Such 
programs are called nonrelocating be- 
cause the computer automatically loads 
them back into the same memory area they 
were saved from. You can identify this 
type of program because the instructions 
tell you to load it ivith ,8,1 instead of ,8. A 
nonrelocating program also starts with a 
SYS command rather than RUN. 

Commodore 64 BASIC does not in- 
clude a BSAVE command for saving a 
relocating program. But there is an easy 



way to make new copies of such programs, 
using "MLX," the machine language en- 
try program published frequently in COM- 
PUTE!. Simply load the program into 
MLX, insert a new disk, and save the 
program exactly as you would when typ- 
ing it in from MLX.. MLX is included on 
every COMPUTE! disk and also appears in 
issues of COMPUTE! that contain pro- 
grams to be typed in with MLX. This 
procedure requires that you know the be- 
ginning and ending addresses for the pro- 
gram; that information is contained in the 
accompanying article. 

If you don't know the starting and 
ending addresses for a program, run this 
program and enter the name of the file 
when prompted. It reads the program's 
load address and calculates its ending 
address based on the number of bytes in 
the file. Once you know the addresses, you 
can make a copy of the program with MLX 
as described above. 

100 PRINT "ENTER FILENAME ": INP 

UT F$ 
.110 F? = "0: "+F$!T? = ",P,R":OPES 

{SPACEjl5,8,15, "I0"iGOSUB 2 

120 IF ER AND ER<>62 THEN PRIN 

T ERr ER5: TR; SE:CLOSE 3 :C 

LOSE 15:END 
130 IF ER=62 THEN T5=",S,R":GO 

SUB 200 
140 IF ER=62 THEN T$=",U,R":GO 

SUB 200 
150 IF ER THEN PRINT "CAN'T OP 

EN ";F5;" FOR READING" :CLOS 

E 15: END 
160 GET#3,LO?:GET#3,HI5:SA=ASC 

(LO$+CHR?(0))+256*ASC(HIS+C 

HRS(0)) 
170 PRINT "STARTING ADDRESS: ";SA 
180 GET#3,X$:IF ST=0 THEN SA=S 

A+1 :GOTO 180 
190 PRINT "ENDING ADDRESS: 

12 SP ACES }";SA: CLOSE 3 :CLOS 

E 15: END 
200 CLOSE 3:OPEN 3 ,8 , 3 , F?+T5 : I 

NPUT#15, ER, ER$, TR, SE:RE 

TURN 

BASIC 7.0, the BASIC used on the 
Commodore 128, includes a BSAVE com- 
mand that lets you save the contents of 
any memory area. Again, you must know 
the starting and ending addresses of the 
area to save. Here is the general syntax for 
BSAVE: 

BSAVE "filename", Ddrive number, 
Bbank tiumber,Pstart address TO Fend 
address 

This command takes several parame- 
ters. The parameters for drive number 
and bank number are optional. If you 
omit them, BASIC uses drive and memo- 
ry bank 15 as defaults. You must always 
supply the start address and end ad- 
dress. For example, this statement 
BSAVEs the block of memory in locations 
3584-4096 (in bank 0) in a disk file named 
"SAMPLE": 

BSAVE "SAMPLE", BO, P3584 TO P4096 



68 COMPUTEI March 1987 



80-Column Hi-Res Graphics 
For 128 

The 228 Programmer's Reference Guide 
states that it is possible to do multicolor 
bitmapping on the 80-column screen if 
you reduce the size of the screen by 
2000 bytes. Could you publish a pro- 
gram that does this and that plots both 
screen and color pixels? ■ 

L. K. Snyder 

Although the 128's BASIC 7.0 uses only 
the VIC (40-column) video chip for high- 
resolution graphics, the VDC chip that 
generates the SO-columyi screen display 
can also produce bitmapped displays. This 
feature isn't mentioned in the System 
Guide that comes luith the 128, although 
it IS covered briefly in the 128 Program- 
mer's Reference Guide. In the example 
provided in the Programmer's Reference 
Guide, the foreground and background 
colors are the same for the entire screen, 
so the display can have only two different 
colors. The VDC can't produce a multicol- 
or bitmapped (hi-res) display in the same 
sense that the VIC chip can — the VIC 
multicolor bitmapped display can use up to 
four different colors within each 
4 X 8-pixel area, while the VDC chip's 
bitmapped display can use only two differ- 
ent colors ivithin each S X 8-pixel area — 
but the VDC bitmapped display can have 
more than just two different colors. 

To understand why the two-color 
bitmapped display is easier to set up, you 
need to knoio a little about how VDC 
bittnapped displays work. The standard 
VDC bitmapped screen is 640 pixels wide 
by 200 pixels tall. Each pixel is controlled 
by a single bit in the area of VDC memory 
known as the bitmap. Thus, 128,000 bits 
(640 • 200j, or 16,000 bytes, are required to 
bitmap the entire screen. When a bit in the 
bitmap is set to 0, the corresponding pixel 
takes the background color. When a bit in 
the bitmap is set to 1, the pixel takes the 
foreground color. The layout of the bitmap 
is much more straightforward than the 
VIC's arrangement. The first byte of bit- 
map memory controls the leftmost eight 
pixels on the top screen line. The next byte 
controls the next eight pixels to the right, 
and so on. 

For controlling colors, the pixels are 
grouped into an array of 8 X 8-pixel 
character positions. Each character posi- 
tion has a corresponding location in the 
area of VDC RAM called attribute mem- 
ory. /(! bitmapped mode, the lower four 
bits of each attribute memory location 
specify the foreground color for the corre- 
sponding character position, while the 
upper four bits specify the background 
color for the position. Thus, even though a 
character position can have only 2 differ- 
ent colors, each position can have inde- 
pendent colors, and alll6 available colors 
can be used in the display. Here's the 



problem with that system: The standard 
VDC display has 25 horizontal rows of SO 
character positions per row, so attribute 
memory normally occupies 2000 (80 * 25) 
bytes. However, the 16,000-byte bitmap 
requires nearly all of the 16K (16,384 
bytes) of available VDC RAM. There's not 
enough room for attribute memory in ad- 
dition to the bitmap. The Programmer's 
Reference Guide example offers the easi- 
est solution to this dilemma. The VDC 
allows attribute memory to be disabled, in 
which case the foreground and back- 
ground colors for all screen positions can 
be specified in VDC internal register 26. 
Although this lirnits you to only 2 differ- 
ent colors in the display, it does allow a 
full 128,000-pixel screen. 

The alternative solution, alluded to 
in the Programmer's Reference Guide, 
is to reduce the size of the bitmap suffi- 
ciently to make room for attribute memo- 
ry. The VDC is a highly programmable 
chip. Although the standard VDC screen 
is 80 columns by 25 rows (640 dots by 200 
lines), you change the display to any 
height and width by changing the appro- 
priate VDC internal registers. For ex- 
ample, if you reduce the display size to 80 
columns wide by 22 rows tall (640 X 176 
pixels), then 14,080 bytes will be required 
for the bitmap and 1760 bytes will he 
required for attribute memory, so both 
will fit in the available 16K. The VDC 
register system is loo complex to explain 
in detail here, but the following program 
illustrates the necessary steps to create 
full-color bitmapped graphics on the 80- 
column screen. The program is adapted 
from one in Mapping the Commodore 
128, from COMPUTE! Books, which pro- 
vides a thorough discussion of VDC regis- 
ter operations. 

Operate this drawing program with a 
joystick plugged into port 2. Press the fire 
button to move without drawing. Press B 
to change the background color and F to 
change the foreground color. The color 
changes affect all pixels in each subse- 
quent character position you move 
through. You can press H to home the 
drawing point to the center of the screen, 
C to clear the screen, and P to change the 
border color. 

(For instructions on entering this pro- 
gram, please refer to "COMPUTEl's 
Guide to Typing In Programs" else- 
where in this issue.) 



EE 100 GRAPHIC 0:FAST 

QP 105 REM ** SCREEN EDITOR RO 

H ROUTINES 
RQ 110 WR=DEC("CDCC") :RR=DEC(" 

CDDA" ) 
PX 115 REM ** SET DEFAULT COLO 

RS 
HF 120 BC=2tFC=ll !PC=9:SYS WR, 

PC, 26 
CC 125 REM ** SET SCREEN HEIGH 

T TO 22 ROWS 
XB 130 SYS WR,22,6 



PH 


135 


ME 


140 


PH 


145 


HE 


150 


FD 


155 


MJ 


160 


DH 


170 


FK 


180 


KG 


190 


JP 


200 


OR 


205 


EC 


210 


GH 


215 


JS 


220 


DC 


230 


HS 


240 


AR 


250 


JJ 


255 


GP 


260 


GG 


265 


RD 


270 


KG 


280 


KH 


290 


XP 


295 


QR 


300 


HJ 


310 


BA 


320 


SJ 


325 


RJ 


330 


PE 


340 


PJ 


350 



REM ** MOVE ATTRIBUTE M 
EMORY TO ADDRESS 10480 
CM=140S0 jCH=INT (cm/256 ) 
:CL=CM-{CH*256) :SYS WR, 
CH,20:SYS WR,CL,21 

REM ** ti;rn on BITMAPPE 

D DISPLAY 

SYS RR,,25:RREG A: SYS W 

R, {A AND 63) OR 192,25 

rem ** clear bitmap and 
attributes 

SYS RR,,24:RREG A: SYS W 

R,A AND 127,24 

SYS WR, 0,18 I SYS WR,0,19 

:SYS WR,0,31 

FOR 1=1 TO 56:SYS WR, 25 

5, 30: NEXT 

SYS WR,CH,18:SYS WR,CL, 

19:SYS WR,BC*16,31 

FOR lal TO 7:SYS WR, 255 

,30:NEXT 

REM ** SET HOME COORDIN 

ATES 

X=320:Y=88 

REM ** CHECK FOR KEYPRE 

SS 

GET K?sON INSTRC'BFPCH" 

,KS) GOTO 230,240,250,1 

60,210:GOTO 260 

BC=(BC+1) AND 15:G0T0 3 

30 

FC={FC+1) AND 15:G0T0 3 

30 

PC=(PC+1) AND 15: SYS WR 

,PC,26 

REM ** READ JOYSTICK 

D=J0Y(2)!lF D=0 THEN 22 

01 ELSE B=D AND 128:D=D 

{SPACE} AND 15 

REM ** CALCULATE NEW PO 

SITION 

Y=Y+(D<3 OR D=B)-(D>3 A 

ND D<7):IF Y<0 THEN Y=l 

75:ELSE IF Y>175 THEN Y 

=0 

X=X-(D>1 AND D<5>4-(D>5) 

:IF X<0 THEN X=639:ELSE 

IF X>639 THEN X=0 
IF B THEN 330 
REM ** SET PIXEL 
AD=INT(x/8)+a0*Y:AH=INT 
(AD/256) :AL=AD-(AH*256) 
SYS WR, AH, 18: SYS WR,AL, 
19 I SYS RR,, 31:RREG A 
SYS WR,AH,18!SYS WR,AL, 
19;SYS WR,A OR 2T(7-(X 
(SPACE)AND 7)), 31 
REM ** SET FOREGROUND A 
ND BACKGROUND COLORS 
AD=CH+INT(X/8)-H80*(lNT( 
Y/a)) :AH=INT(AD/256) :AL 
=AD-(AH*256) 
SYS WR,AH,18:SYS WR,AL, 
19:SYS WR, (BC*16)+FC,31 
GOTO 220 



COMPUTE! 

TOLL FREE 

Subscription 

Order Line 

1-800-247-5470 

InlA 1-800-532-1272 



March 1987 COMPUTEI 69 



Reviews 



Little Computer 
People 

Neil Randall 

Requirements: Atari ST, Apple Il-series 
(64K minimum), Amiga, and Commodore 
64 computers. 



In 1985, Activision introduced a unique 
concept in computer gaming. The origi- 
nal version of Little Computer People, 
available for the Commodore 64, Atari 
eight-bit machines, and Apple II series, 
was so popular that many people 
bought several copies. In 1986, versions 
for the Amiga and Atari ST were re- 
leased. Neither a game nor an applica- 
tions program. Little Computer People is 
as purely entertaining as anything on 
the market. Its greatest appeal is un- 
doubtedly to children, but in its short 
lifetime it has managed to capture 
many adult imaginations as well. 

The premise behind Little Com- 
puter People is extremely simple. Inside 
every computer live several small peo- 
ple. They do not speak our language, 
but they live a day-to-day existence 
that resembles ours. The problem is, 
they have no home. What Little Com- 
puter People does, therefore, is provide 
them with a house to live in and some- 
one to take care of them. 

That someone, as you might ex- 
pect, is you. When you first start the 
program, you are asked to sign a very 
attractive guestbook and provide the 
current time and date. Then a house 
appears on the screen, cut away to re- 
veal the contents of several rooms. On 
the ground floor is a kitchen, with table, 
chair, refrigerator, sink, and water cool- 
er, and a living room with fireplace and 
telephone. The second floor has a bed- 
room, bathroom, and computer room. 
Up the stairs to the top floor there is a 
large room with a television and stereo, 
a piano, a desk with typewriter, and a 
filing cabinet. 

Keeping Him Happy 

After a short wait, your LCP (Little 
Computer Person) appears. He will en- 
ter the front door, check the place out. 



then leave. Shortly, he will return with 
his luggage and his dog. Your job, now 
that you've provided him with a home, 
is to keep him happy. To do so, you 
must make sure he has food and water, 
provide food for his dog, and pay atten- 
tion to him. The first three are easy. 
Control-F (in the Atari ST version, the 
one used for this review) drops food at 
the front door, Control-W adds a glass 
of water to the cooler, and Control-D 
leaves food for the dog. Your LCP will 
feed himself and the dog without your 
prompting. 

Your LCP will be in one of four 
states. Happy means just that. Content 
means his life is okay, but it could be 
better. If his face is sad, you should 
cheer him up immediately, and if you 
don't feed him or give him water, he 
will turn green and lie sick in bed. To 
boost your LCP's mood, you can call 
him on the phone (but be prepared not 
to understand a word he says), you can 
"pet" him, or you can leave a record for 
him at the front door. When he re- 
trieves the record, he will take it up to 
the stereo and play it. You can listen 
with him. 

Another mood booster is playing 
games. You can either ask him to play, 
by typing in the request, or wait for him 
to knock on your screen. He v\dll then 
offer to play one of several games. Ana- 
grams is a word-unscrambling game, 
with you doing the descrambling. Card 
War is the children's card game "War." 
If you play 5-Card-Draw Poker against 
him, he will let you win just often 
enough to think you can beat him. The 
same applies to Blackjack. Finally, 
Word Puzzles has you fill in the blanks 
to a word in a sentence he prints on the 
screen. All the games are fun to play, 
and the LCP appreciates the attention, 

Again in response to your request, 
or purely on his own, the LCP will 
either play the piano (he's pretty good) 
or sit at the typewriter and send you a 
letter. The letter is always addressed to 
you, and you wUl quickly discover how 
well-mannered your LCP really is. You 
can, at any time, type in a request to the 
LCP, to which he may or may not re- 
spond. If he does, he nods his head and 
does as he is asked. Writing is the only 
way to communicate with him, though, 
since he does not speak English. 



An Everyday World 

What you do most of the time, though, 
is watch your LCP spend his day. He 
wUl light a fire and read a book in the 
living room, or he will feed the dog in 
the kitchen. He works in the computer 
room and sleeps in the bedroom, and 
when he closes the bathroom door he 
will emerge to the sound of a toilet 
flushing. Much of his time he spends 
watching television or playing music, 
and he seems to spend an inordinate 
percentage of his life walking up and 
down the stairs. He eats, drinks, sleeps, 
reads, entertains himself, and takes care 
of his dog. In other words, his days are 
much like many of ours: not very excit- 
ing, but pleasant and, if you are good to 
him, fulfilling. 

By now I'm sure you see the enor- 
mous and subtle educational appeal of 
Little Computer People. To watch a child 
care for the LCP, writing letters to it and 
playing games with it, is a marvelous 
way to pass a few hours a week. To a 
child, a sick LCP is a matter of life or 
death; a happy one is cause for rejoic- 
ing. The program provides neither the 
competitiveness of computer games nor 
the unrealistic time distortion of televi- 
sion, as the LCP lives a pretty normal 
life in a pretty normal house, The child 
will learn to care for and about the LCP, 
and there's not much more you could 
ask of a computer program. 

Activision has included one other 
brilliant feature in Little Computer Peo- 
ple, but I suspect that most people, like 
me, will take a while to appreciate it. 
There is only one Little Computer Per- 
son on the disk. To get another, you 
have to go buy a new disk. Now, to 
those of us used to starting a game over 
from scratch when something goes 
wrong, or when we grow tired of it, this 
feature is initially disappointing. At 
least I found it so. But when I thought 
about it, I began to realize that this is 
solidly in keeping with the rest of the 
design. You can't change LCPs, because 
you have made a commitment to caring 
for the one you already have. The LCP 
simulates a little person inside the com- 
puter, one which the child must take 
care of even if he would like to have 
somebody else. One of the criticisms 
about simulations as a whole is that 
they encourage noncommitment be- 



70 COMPimi March 1987 



Authorized 



COMB 



Liquidator 



XEROX^ COMPUTER FOR BUSINESS, AND PERSONAL USE! 

XEROX^...Th€ Name You Can Trust! 



Since 1906 Xerox* has been the world 
leader in office automation and copying 
equipment They have set standards tfiat 
others can only imitale, The Xerox* 6064 
Personal Computer was designed to meet 
the demands of business, professional, and 
personal computing today, and into the 
future! We are proud to offer this complete 
Xerox* System at a remarkably LOW price. 
Compare for yourself. ..then buy your Xerox* 
6064 from C.O.fi/l.B.! 

Get the Xerox* Advantage! The Xerox" 
PC offers you the advantage of running IBM'" 
compatible rv1S'"-D0S, so you can run the 
hundreds of business and professional soft- 
ware programs available today! And the 
Xerox* PC is easy to use! It's designed to get 
you up and running as quickly as possible 
with computer-aided instruction and supe- 
rior documentation covering all aspects of 
personal computing. 

Xerox <!... Service You Can Count On! If 

you're considering an iBM'"-compatible, 
don't be misled by price alone! The system 
we are offering is a complete system... very, 
easy to hook up and use.. .and very afford- 
able. But more tha n that, eac h syste m we sel I 
is backed by Xerox* service and support 
When you buy this system, your name and 
computer's serial number is automatically 
registered with Xerox®. Should you need 
service or advice, a network of over 150 
service centers stands ready to help you. 
Before you buy. ..compare! Xerox® is your 
best value! Check all these features: 

• IBri/l'"-PC Compatibility, 

• Standard 83- Key PC Keyboard with 
Mouse Interface {Mouse rJol Included.) 

• High-Resolution Monochrome Monitor, 
with 10" Diagonal Non-Glare Screen, 
Swivel and Tilt Housing. 

• Two S'/i" Floppy Disk Drives. 

• 256KB Memory. 8MH2 Intel 8086-2 
Microprocessor for Faster Speed, Less 
Waiting Time. 

• Seven Expansion Slots, Serial Port for 
Communications or Printer, and Parallel 
Printer Port 

• Comes with ScreenMate™, a User 
Friendly Guide to the Functions of the 
MS'"- DOS Operating System. 

• Menu Driven. ..No Need to Remember 
Complicated Commands! ScreenMate'" 




• Four Reference Guides. 

• Four Software Programs: Two X-Cel'" 
Training Disks, Two Diagnostic Disks, 
GW"-BASiC Interpreter, and MS'"- 
DOS/ ScreenMate'" Operator's Guide. 

• Twenty Blank Disks. 



Lets You Select from a Menu and 
Provides Clear On-Line Instructions If 
You're Confused About Your Next Step. 

Complete Tutorial Software and 
Manuals Included: 

• "Getting Started" Booklet 

Over 150 Service Centers Nationally. 
Manufacturer's Limited 90-Day Warranty on Parts/Labor 

ustprice ^2764.80 

Liquidation Priced At Only . 



»999 



Hem H-21 85-71 1 8-557 Shippped Freight Coifed Ship Wl.: 79 lbs. 

Xsroj- and Iheidenlttying Humbert herein are Iratfomartiiol XEROX' CORPORATION. 



_T9]}-f_ree:^-800^32B-0609 brptSerJIyTd^ytL week. ^feSJ^^S 



SEND ME THE ITEMS I HAVE LISTED BELOW 

Sales outside 48 contiguous states are subject lo 
special conditions Please call or write to inquire. 



Item No. 



Qty. 



Hem 



TOTAL (Producis plus ship, handling) 



Price 



S/H 



SEND TO: Hem H-21BS 

C.O.M.B. Direct Marketing Corp. 

1405 Xenium Lane N/ Minneapolis, MN 55441-4494 

Send Ihe I lems indicated at left (tvlinnesoia residenis add 6% sales lax. Sorry, no COD.] 
D My checti or money order is enclosed, No delays in processing orders 
paid by ctiecK.) 

Charge: D VISA* D MasterCards D Discover D American Express® 
Acct. No. Fin ' 



PLEASE PRINT CLEARLY 

Name 

Address 

City 

Stale . 



-Exp_ 



Phone L 



Sign Here- 



-ZIP- 



COMB COMB COMB COMB COMB COMB COMB 



cause nothing is irrevocable. Activision, 
in a flurry of brilliance, decided not to 
let that happen. As a design decision it 
is tinusual, but it is one worth consider- 
able praise. 

Is Little Computer People for every- 
one? No, no more than any other com- 
puter product is. It is, however, for 
anyone seeking to encourage the grow- 
ing trend in entertainment software to- 
wards real-life simulation. In the past 
year the people at Activision have given 
us Alter Ego and Little Computer People, 
and in doing so demonstrated a vnlling- 
ness to buck the trends and let entertain- 
ment software find its own course. They 
are to be applauded for this, because 
without the willingness, such innova- 
tions as Little Computer People would 
not exist. It is a delightful program. 

Little Computer People 

Activision 

2350 Bayshore Frontage Rd. 
Mountain View, CA 94043 
$49.95 Atari ST and Commodore 

Amiga versions 
$39.95 Apple IJ-series version 
$34.95 Commodore 64 version 




Lookii^ for a Widget 

for your 

Okidata printer and 

need it now? 

Call Precision! 

Precision Images normally stocks 
most spare parts for your Okidata 
printer, from the Okimates to the 
Pacemarks including the new 
Microline and Laserline series. 
Anything and everything for your 
Okidata printer is only a phone 
call away, Precision Images is 
"your direct connection to genu- 
ine Okidata parts and supplies," 

for Visa/MasterCard orders call; 
1-800-524-8338 




prECiston kmages 



Precision Images, Inc. 

P,0- Box 866 

Mahwah, New Jersey 07 '430 




A view of the cutaway house in Little Computer People (Amiga version). 



Attention all FX80. FXlOO, JX, RX, & MX owners: 

Yott already own half of 
a great printer 



Dealer 
inquiries 
welcome. 



Now for S79.95 you can own 
the rest. You see, today's new dot 
matrix printers offer a lot more. 

Like an NLQ mode that makes 
their letters print almost as sharp 
as a daisy wheel. And font switch- 
ing at the touch of a button in over 
160 styles. But now, a Dots-Perfect 





upgrade kit will make your printer 
work like the new models in min- 
utes— at a fraction of their cost. 

And FX, JX and MX models will 
print the IBM character set, too. 

So, call now and use your Visa, 
MasterCard, or AmerEx. Don't 
replace your printer, upgrade it! 



1-800-368-7737 

In California: 1-800-831-9772 



g 



Sample of 
letter wHh 
Dots-Perfect 



(Dots-Perfect) 

J^Dresselha us 



Sample of 

letie: wrthout 

CkMs-Perfect 



g 



837 E. Alosta Ave,, Glendora, CA 91740 Tci: (818) 914-5831 

An upgrade kit for EPSON FX, JX, RX, & MX printers 




EPSON.sauademafkof 
EPSON America, Inc 



72 COMPUTE! March 1987 



Sensational Prices! 

. . . On Our Most Popular Items! 



from 



miero 



^i 



THE 49C DISKETTE! 

Are you paying too much for diskettes? Try our first 
quality, prime, SVi" disl(ettes (no rejects, no seconds) 
at these fantastic sale prices and save, save, SAVE! 
Disks are packaged in tsoxes of 50; including diskettes 
in sleeves, labels, and write-protect tabs. 

Each diskette is certified to be 100% error free and 
comes with a lifetime warranty (i! you have a problem, 
we'll replace the diskette). All diskettes include flub rein- 
forcement rings and write-protect notch. 

All diskettes are double density and work in either 
single or double density drives. 



SS, DD Diskettes, Box of 50 
32391 

DS, DD Diskettes, Box of 50 
32403 



$24.50-49C ea.i 
$29.50-59c ea.! 



POWER and PROTECTION 
FOR YOUR C-64!® 




POW'R PAK 64 

from MicroPal® * - 

Pow'r Pak is a replacement power supply (1 ,5 amp) 
for the Commodore 64" . . ,but that's not all! Pow'r 
Pak also supplies two additional surge protected out- 
lets (ISOV) for monitor, disk drive, or other peripher- 
als. On/off switch. Fuse protection. Sturdy all-metal 
casing is ventilated for heat dissipation. Fu!l 1 year 
warranty. 

.34910 S49.95^ 




ii£@)ir 



Lowest Cost, |J^>;% 
Best Performing ^w^^^ 
Star Printer Ever!! 

NP-10, Ideal (or school and home use, the 

newest printer in the Star line promises to be 

a best-seller due to its great features and 

unbeatable price! You get superb draft printing 

at too cps and its easy to switch to crisp, precise 

near letter quality at 25 cps. Easy front panel operation 

allows you to change modes at the simple touch of a 

button. Tractor and friction feeds standard. Printing is bidirectional in draft mode and 

unidirectional in bit image and NLQ modes. Five ctiaracter sets are available in draft 

mode including italic and international characters, with three sets available in NLQ. 2K 

buffer. Standard parallel interface. Full one-year warranty Sug, Retail S279,00 

64204 NP-10 Printer SCALL FOR LOWEST PRICE! 




* THE BEST PRICES * 

* THE BEST SERVICE* 

WHY SHOP 
ANYWHERE ELSE? 



THE FAMOUS SLIK STIK™ 

The SSk Stih'" has been a favorite for years and 
lor gooo reason. It's lust the nghl combination ol 
responsiveness and accuracy And Ibe price can'i 
be beal' From Syncom. 90 day warranty. Connects 
cireclly !o Commodore Computers. 

ma s6,35 



ONLY S6.95! 




Space Saving Printer Stand 

AI last a 0(inter stand priced lof homes and Simall oflicesi This great stand from 
SuFtcOm IS elEvaled so you can place your paper undtrrteaili Realures heavy duty 
vrtided steiel wu? coistruciion and has a viny: caaling to reduce noise and vibra- 
tion Anorher pfus the prinlef is held at a^i angle that maites it much easit' 
lo see ycur output as it is Semg pfinied. Availat)!e in tm mdtns: 12' tor most 
80 cgfumn priTilers. and tB" for most 132 colLfjnn pnnters 
33232 ta- Printer Stand (WasSl495) ONLY S 6.95 

33246 18- Prtnier Stand (Was S22 95) ONLVS12,95 



Paper Tray 



E^«r Mndered what lo do witli ttit prlntoul Kiai cOfflWS out ol Itie printer and tends 
to spiff all over ine tibl^ snd I'oor^ Ttie Stincom Paper Tray atlacties to ttie rear of 
all Suncom stands and receives the pnntetJ paper as it comes out ol ttie artnter Helps 
to neatly iDifl and slack it! Sug. Retail S14 95 

. 42091 St1.95 




Our Lowest Price Ever 
On Diskette Storage! 



A 




INNOVATIVE CONCEPTS.INC. 



FLIP SORT 70 



> Stores and liles up to 70 5'A ' dis<ettes, 

' Inclutfes 5 index dividers for orsanizalion of filing and retrieval. 

' Molded from higtily durable plastic. 

Sug, Retail S7.95 

Regular Tenex Price S6 95 

^ 43375 SUPER SALE S4.95 



DUST COVER and 
"EVERYTHING BOOK" 

SPECIAL OFFER 

Get to know us by ordering this great dusl 
cover tor your C-64 or C-128 and our catafog. 
"The Everything Book for the C-64 and C-128 
Home Compulers," for $2.95 (no extra ship- 
ping and handling charges). Cover is antistatic, 
translucent fl-gaugs vinyl sewn to our exacting 
standards wilh reinlorced seams. Discover the 
savings and easy shipping available from 
TENEX Computer Express! 




52.95 



31627 €-64 Dust Cover and Catalog (K1A) 
I 3B464 C-12e Dust Cover and Catalog |K1A)j 



TheRight Interface For Air 
Your Printing Needs!! 

■' a sound investfneni hi youi 

-TjTpl' ^ CommocfOJ^" RUN. Dec, '8S 

tT \^J^* ^^'^ tiigh performance grapliiEs 

' <r^ paralfel printer interface from DSI br 

C-B4 and VIC-2CI emulates a Commodore pnnlar Comes with 

catiles and user',s maifiual 

33565 $39.95 

Super GraphiX. Features SK ^ulfer. 1G printing 
modes. 3 internal screen ctumpsand top mounted dip switches 
Supports superscript, subscript, underfming, boW lace, and 
a choice of 9 ctiaracter widitis Ffom Xetec 
41769 $69.95 

SUDBr urSphiX Jr a mare economical version oi 
It^e Super GraphDc, leaturng grapfiics. normal artd correspon 
Jance quality pnniing Compatible wilti all major pnrters Ffo^n 
Xetec. 
41774 $49.95 



from Your Friends At 

T€N€X 




We gladly accept 
mail orders'. 



Ad 
K1A 



SHIPPING CHARGES 



COWWflKJflE H IS 1 ftgiMfrfd IrailemirN 



P.O. Box 6S7S 
South Bend, IN 46660 

Questions? Call 
219/259-7051 

KH) COMMODORE UE -s a i-Mf^flrK o- ComnodO'e EUafDnlcB. Lid 



ORDER AMOUNT 

less than S20.00 

S20.00-S39.99 

S40.00-S74.99 

S75.00-S149.99 

S150.00-S299.99 

S300 & up 



CHARGE 
S3, 75 
4.7S 
5.75 
6.75 
7.75 
8.75 



Z'X^ 



FoFBgn Drflers am W 00 Heavy ileirs sliip al jclual cosl. 



NO EXTRA FEE FOB CHAR GES 

m VEHtFY CHARGE CARD 
ADDRESSES 

ORDER TOLL FREE 

1-800-348-2778 

INDIANA ORDER LINE 1-800-225-6838 



Certificate Matcer 
And Wait Disney 
Card & Party Stiop 

Karen McCuUough 

Requirements: Apple U series (64K mini- 
mum) and Commodore 64. Certificate 
Maker also has an IBM PC (and compati- 
bles) version. 



Conceptually, Certificate Maker and Walt 
Disnei/ Card & Party Shop are indirect 
offspring of Broderbund's classic home 
printing program. The Print Shop. They 
use a similar simple, menu-oriented ap- 
proach to design and setup, with no 
decisions being final until you actually 
print. And they enable your computer 
to produce professional -looking items 
you couldn't otherwise create at home. 

Certificate Maker's name says it all: 
The program prints certificates. That's 
the only thing it does, but it performs 
that function very well. Although it 
trades some flexibility for ease of use, 
it's difficult to think of an award the 
program couldn't handle. 

The designers have broken the 
process of certificate creation into four 
steps. You begin by selecting a tem- 



plate, or basic format, for the certificate. 
The template may include a headline 
and various graphic designs. With more 
than 200 available in the package, in- 
cluding several all-purpose and blank 
designs, there's a certificate for every 
imaginable occasion. 

The second step is to choose a bor- 
der. Each of the 24 available designs is 
displayed on screen as its title is high- 
lighted, and there's an attractive assort- 
ment. Third, for templates that don't 
have a predesigned title, you enter title 
font style and the text. Five fonts (in 
two sizes) are available; they're accept- 
ably good looking, but one could wish 
for a wider choice. 

The last step is to choose a font for, 
and enter, the body text. How much 
body text is available depends on the 
font style and size chosen. That done, 
you enter a date and signature line and 
tell it to print. Printer setup follows a 
trend found today in many programs: 
You choose your equipment from the 
lists displayed, and the program config- 
ures itself. 

Certificate Maker has several fea- 
tures worth mentioning. The names file 
option allows you to create a list of 
names and ask the program to print a 
certificate for each. Several lists of 
names can be edited and saved on a 
separate disk (be aware, though, that in 



the Apple version this must be a Pro- 
DOS formatted disk). When you run 
the printer-setup test, it prints four 
blocks that represent the corners of the 
certificate to help you position the pa- 
per correctly. 

Disney On Paper 

Walt Disney Card & Party Shop has tak- 
en a different approach and added flexi- 
bility at the cost of some friendliness. 
The Card & Party Shop lets you create a 
full line of paper goods for a child's 
parly: invitations, place cards and mats, 
wrapping paper, banners, and so on, or 
cards and signs for other purposes. 

For most items you can choose a 
predesigned layout or create your own. 
If you stick to predesigned pieces, the 
creation process is simple: Choose a 
design and print it. The variety is suffi- 
cient; you could have several different 
parties using just the designs available 
from the program. 

Card & Party Shop lets you do a 
great deal more, but you'll have to 
spend some time with the manual 
learning how. In general, the manual is 
clear, but it has a propensity for refer- 
ring you to other pages for discussions 
of various features. 

The program offers six typefaces, 
but that's misleading; the variety is 
more in size than style, and the style is 



Personalized 
Computer Stationery 

HighQuality— Fast Service— Free Delivery 

TYPE STYLES: 
Andover Bold 
Avant Garde Book 
Colonial Bold 
Korinna Extra Bold 
Megaron Medium 
Megaron Bold 

Times Roman 



Continuous Letterheads 

(Invisible Pert) 
S10 Continuous Envelopes 

(Invisible Perfl 
8y2"x 11" Letterheads 
ilO Regular Envelopes 

Choice of Inks: Black, Red, Blue, Green, or Brown. 

Paper Color: White. (Colors Available at Additional Charge) 

Custom type and colors with your company logo quoted on request. 

^HR Computer Stationery Printers, Inc. [we 

508 Harrison Avenue • Harrison, Ohio 45030 

513-357-1700 

Call TOLL-FREE (800) 654-4116 or (800) 654-4110 (Ohio) 

'We specialize in computer paper products" 




500 


1000 


Add'11, COO'S 


$ 54.50 


S 78.25 


$ 44.00 


66.50 


117.25 


68.10 


44.00 


51.00 


38.00 


51.95 


74.35 


55,83 




THE AMAZING 

VCICC MASTER 



ENTER 

JHEHNAL 

FRONTIER 

OF 

MAN-TO-MACHINE 

COMMUNICATIONS 

ThGfe is nothing else like 
it. Voice Master gives 
both speech output 
and voice recognition with this single hardware product! Your voice 
controls pfograms. or home appliances, rotxjts. and more with spoken 
commands. Verbal response bock gives status, vefifies, or requests yogr 
reply! Speech output and recognition patterns ore recorded in with your 
voice. Of use ttie voice of your friend, boss, teacher, mother, even the 
family pet! Programming issimplewith newcommonds odded to BASIC. 
A music bonus program lets you write and compose musical scores 
simply by humming the tune. Unlimited applications for tun, education, 
and commercial use. Design your own progroms for profit. Speech and 
recognition quglity unsurpassed by even the most sophisticated 
machines. Only Covox provides this high-tech marvel ota price less than 
most common peripherals 

The Covox Voice tvtaster comes complete with all hardware ond software 
for only 869.95. (Add S4 shipping and handling for USA S6 Canada. S10 
overseas.) Available for Commodore 64/128. Apple II. II+. He, lie. Atari 300, 
eOOXL 130 XE. Specify when ordering, Visa, MosteiCard phone orders 
accepted, 

Call or mllB tor flPff Voice Master Infopak 
and special combination package Qllen. 

CXM/OX iNC.DEPT.C! 

675-D Conger Street • Eugene, Oregon 97402 • U.SA 
Area Code (503) 342-1271 » Teiex 70i01 7 (Av AJofm UP) 





BBH3> 



II ii r f -/ ./ .. 1' f r 'J. .JMBBBi 

II " i »- J '"I tr i r jf i If JIMBBBl 
IU.^isL.^ft^«B.^ate«JU«»JbdaHBHBI 



■■■■■■■■■■r- 



#' if J i f r .r . '■ _ ir 


1 


T Ii J "If IB ' jr i 1 'A 


1 


L J Bflr » i # . r i T 


-1 



AMIGA 

512K RGB System CALL 

256K Amiga CALL 

A10l0 3'/j" Disk Drive CALL 

MOm RGB Monitor CALL 

Al 050 256K Expansion CALL 

A16B0 12Q0 Baud Modem CALL 

'CASIO WRITER 

CW-20;CW-30 CALL 

•AMSTRAD 

Word Processor with NLQ Printer . . . CALL 



HARDWARE 



ATARI ST 

520 ST RGB of 

Monochrome System CALL 

SF314 DSDD Disk Drive CALL 

SF3S4 SSDO Disk Drive CALL 

SCI 224 12" RGB Morsitor CALL 

SMI 24 12" Morvochrome Monitor . .CALL 

SH204 20 MB Hard Drive CALL 

SMM 804 Printer CALL 

Laser Printer CALL 

1200 Baud Modem ..CALL 



JVC 

Victof Champion Computer, IBM 

Compatible, 2 Drives, 640K, 

Software Included $695.00 

Monochrome Monitor With 

Video Card SI 39.00 

COMMODORE 

P.C. 10 Computer CALL 

P.C. 20 Computer CALL 

MICRO SCIENCE 

20 MB Drive with Controller $379.00 



ATARI XUXE 

130 XE Computer CALL 

800 XL Computer CALL 

1050 Disk Drive CALL 

XMM 801 Printer CALL 

1020 Printer S24.00 

XM 301 300 Baud Modem $34.95 

COMMODORE 64^128 

D64C Computer CALL 

D1541C Disk Drive CALL 

C-128 Computer CALL 

Vic-1571 Disk Drive CALL 

Vic-IBBI Disk Drive CALL 

512K RAM Expansion S179.0O 



CALL ON THESE AND OTHER PHODUCTS. WE CARRY A COMPLETE UNE OF SOFTWARE AND HARDWARE INCtUDING PRINTERS 



TOP HITS 



AMIGA SOFTWARE 

Arctic Fox S 30 

Sky Fox S 29 

Deluxe Paint $ 72 

Art Disk Vol. I $ 24 

Deluxe Print $ 72 

Art Disk Vol. II 4 24 

Deluxe Video , S 72 

Instant Music . S 39 

Marble Madness S 32 

Winter Games S 32 

Marauder 11 $ 32 

Grabbit S 24 

Little Computer People $ 29 

Aegis Draw $1 59 

Aegis Animator $ 99 

On Line S 49 

Music Studio S 39 

Analyze 5 69 

Amiga Assembler S 79 

Amiga Pascal $ 79 

Lattice "C" 5119 

Leader Board Golf S 29 

Deluxe Music , S 69 

Scribble with Spell Checker S 79 

Defender of tlie Crown . , 5 34 

dB Man $109 

C84/128 SOFTWARE 

ALL ABACUS TITLES CALL 

ALL MASTERTRONICS 

TITLES CALL 

Winter Games S29 

The Toy Shop $45 

Gettysburg; Tbe Turnif^g 

Point $45 

World Games $29 

Road War 2000 $29 

Gemslone Healer $29 

Destroyer $29 

Shard of Spring $29 

Hardball .S2S 

Commando $25 

Gunship S25 

Fontmaster II $32 

GEOS $49 

F15 Strike Eagle $25 

Fas! Hack'em 529 

Copy II 64/128 S39 

Print Shop $35 

Print Shop Companion S28 

Print Master , $27 

lOlh F'ame S29 



ATARI ST SOFTWARE 

PC Board Designer $149 

Typing Tutor/ 

Word Invaders ...,.$ 25 

Leader Board Golf $ 29 

Little Computer People $ 29 

Music Studio $ 48 

Paint Works $ 49 

Hole In One Golf $ 24 

Flight Simulator Jl $ 39 

Financial Cookbook $ 39 

Degas Elite $ 54 

Copy II $29 

Phantasie $ 29 

Print Master $ 29 

Art Gallery I & II ea. $ 24 

Rogue $ 25 

Silent Service « 29 

Starglider $ 34 

Temple of Apshai Trilogy $ 29 

Thunder $ 29 

Winter Games $ 29 

World Games $ 29 

VIP Professional CALL 

S.D.I $ 34 

Data Manager ST $ 59 

LDW Basic $ 54 

Leather Goddesses of Phobos $ 29 

ATARI XE/XL SOFnWARE 

Battle of Antietam $30 

USAAF $35 

M.U.LE $17 

Movie Maker $39 

One On One $12 

Seven Cities of Gold $12 

Silent Service $27 

f-15 Strike Eagle $25 

Music Studio , $27 

Printshop Companion $28 

Temple of Apsfiai Trilogy $26 

Right Simulator II S39 

Scenery Disk II -61 ea. S16 

Star Disk - San Francisco $16 

Star Disk - Japan $16 

Karateka $24 

Nam $29 

Print Shop $35 

Graphic Library 

I, II a III ea. $18 

Touchdovm Football $12 

Ogre S30 

Computer Quarterback S24 



ABBY'S SUPER BUYS 



AMIGA 

COMMODORE 

Text Craft 

Graphic Craft both for $59.95 



ATARI XUXE 
DATASOFT 

Pooyan ID&CI 

Moon Shuttle (DErCI 



.$ 5.95 
.$ 5.95 



ATARI INC. 

States & Capitals ICI S 1.99 

Basic (Rl $ 2.99 



APPli 

ATARI INC. 



Pac Man 

Centipede ... 
Donkey Kong 



.S 1.99 
.$ 1.99 
.$ 1.99 



VIC-20 

ATARI JNC. 



Donkey Kong 



COMMODORE 
COMMODORE INC. 

Gortek & The Microchips (CI S 2.99 

Clovms IH) $ 2.99 

Tooth Invaders IR) $ 2.99 

Lazarian (R| $ 2.99 

Frog (Waster (R> $ 2.99 

Easy Finance I, III, IV & V ea. $ 2.99 

Blue Print IRl S 2.99 

Jupiter Lander (Rl S 2.99 

Music Composer IRl $ 2.99 

Sea Wolf (Rl $ 2.99 

Screen Editor (Dl $ 2.99 

Suspended (Dl , S 2.99 

Kickman IR) $ 2.99 

English ill, VI & VII (Dl ea. $ 2.99 

Science III ID) $ 2.99 

Star Ranger IRl $ 2.99 

Word/Name Machine (Dl S 2.99 

SpeedBingo Math IRl s 2.99 

TIMEWORKS 

Money Manager (D&CI $ 5.95 

Electronic Checkbook (D&CI $ 5.95 

Data Manager ID&Cl $ 5.95 



ATARI PRINTER SPECIAL 

SPECIAL #1 SPECIAL #2 



ATARI 1020 
COLOR PRINTER 



ATAR1 1027 
LEHER QUALtTY PRINTER 





M29 



00 



ABBY'S EXTRA BONUS: The first 25 to order the 1020 
Printer will receive FREE the ATARI TIMEWISE PROGRAM. 
Retail Value $29.95. 

The first 25 to order the 1 027 Printer will receive FREE 
the ATARI HOME FILING MANAGER. Retail Value $24.95. 



ALL TITLES DIM DISK UNLESS MARKED <R) FOR ROM CARTRIDGE & (C) FOR CASSETTE TAPE 

Order Line WE CHECK FOR STOLEN VISA tt MASTERCARD Customer Service 

1-800-282-0333 -cm o o ,« , ..-r * O*i'o Residents 

ORDERS ONLY! Sales Personnel Do """"^ ^" ^■'"•"* P""' ^^*- ^""^ ^' 1-513-879-9699 

Previr Srde^l":rrd'CctTpacs. 37 S. Broad Street, Fairborn, OH 45324 



AD #CP-IJI7 



SOFTWARE ONLY - Prepaid orders over *50 recBlire free shipping via UPS in continental U.S. Please add S2 ordBri under «S0. HARDWARE and al[ 
orders requiring shipment via U.S. Post Office are lubiecl to additional froishl charges. Add $5 for COD orders. VISA /MasterCard orden add »2 service 
charge. Ohio residenls add 5.5% sales tax. Personal checks require a Ihree-week waiting period. No waiting when paid by credit card, certified check 
or mone^r order. All items subject to availability and price change. PLEASE CITE AD NUIHBER WHEN ORDERING. ALL RETURNS MUST BE ACCOM. 
PANtED BY AN AUTHORIZATION NUMBER. 



■■ 



a 



■■I 



II 
■I 
■I 

■L. 
■■I 



© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 



MATHEMATICS 
AWARD 




Matn is fun and easy to 

learn for titose who try. 

Congratulations to: 

Tammy Swanson 

for passing am Grade Matn. 



M3.Ui-t"t-. ard Grade Tfachi 



© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 
© 





Building a note card hi Walt Disney's 
Card & Party Shop. 

more serviceable than attractive. The 
real strength of the program is the 
graphics. Over 50 pictures and designs 
can be cut, flipped, moved around, and 
combined for infinite variety. Unlike in 
The Print Shop, you can't draw your 
own pictures, but you can combine 
graphics on a page and save your de- 
signs to disk (which The Print Shop 
doesn't allow). 

Certificate Maker and Walt Disney 
Card & Party Shop were designed to fill 
specialized printing needs, creating cer- 
tificates or making cards and party 
items for children. Both perform their 
designated functions well, and will no 
doubt be used regularly in schools and 
homes with small children. They're fun 
to use as well as practical. 

Certificate Maker 

Springboard Software 

7808 Creekridge Circle 

Minneapolis, MN 55435 

$49.95 Apple II series, Commodore 64 

$59.95 IBM PC and compatibles 

Walt Disney Card & Party Shop 

Bantam Electronic Publishing 

666 Fifth Ave. 

New York, NY 10103 

$39.95 Apple Il-series version 

$34.95 Commodore 64 version 



Certificate Maker lets you select format, border, and text font to design your own 
certificates. 



Attention Programmers 

COMPUTE! magazine is currentiy 
looking for quality articles on 
Commodore, Atari, Apple, 
and IBM computers (including 
the Commodore Amiga and 
Atari ST), If you have an 
Interesting home application, 
educational program, 
programming utility, or game, 
submit it to COMPUTE!, P.O. 
Box 5406, Greensboro, NC 
27403. Or write for a copy of 
our "Writer's Guideiines." 



76 COMPUTE March! 1987 



When You're 
Ready to Mouse 
Around... 




Professional 



Do it for 

less with a Lisa 




Runs Macintosh Software 



The Lisa Professional. 
You'll find it nowhere else! 
A powerful computer with 
up Lo a full mqjabytc of 
RAM, 40Mb internal hard 
disk capacity, 400K 
intomal disk drive, large 
12" screen and keyboard 
complete with numeric 
keypad. And, powerful as it 
is, it's as easy to nm as any 
Macintosh™ and a whole 
lut easier to afford! 



799 



512K 400K Internal 799,00 

1Mb 400K Internal 995.00 

1Mb aMb ProFile 1495.00 

1Mb 10Mb Internal HD 1595.00 

1Mb 20Mb Internal HD 1795.00 

1Mb 10Mb Internal Hl> 1795.00 

1Mb 20Mb Internal HD 1995.00 

Lisa Office System (7/7) 295.00 




V Applet Macintosh™ 

^ 400K Disk Drives 






Original 
External 
Drives! 

Reconditionad - Warranted 



79 



each 



SPECIAL PURCHASE \\' 

MacWrite Y 



MacPainr 




Buy Both Only 



99 



Write ver. 2.20 - Paint ver. 1. 3 



r 



NEW 
IN BOX! 



95 



Comrex® 
Deluxe Joysticks 

• Works on Apple and Franaklin 

Atari 2600, 400/800, Vic 20 

Commodore 64, Sears Arcade 

and ColecoVlslon 
» Can be "fine tuned" n Adapter 2.00 additional , 

Over 200 products for the 

Apple III in stock and 

ready to ship! 



14 



SptciBllzlns In RttiBrkBtatt 
Bad Obfo(«l« Appit Ptoiiuctt.. 






ORDERUNE - 

800821 3221 



iun 



SYSTEMS 

REMARK ETING 



a complete lisiting of products 
CALL FOR OUR LATEST CATALOG 

801-752-7651 2S 

Oueslions — Service 






•Apple II 'Apple /// •Macintosh'"' ^ 

Hard Disk Drives 

Quark® lOmb $795 n, /// & Mac 
Quark 20inb $895 U, /// & Mac 
ProFile™ 5mb $595 U. ///&XI. 

ProFiles Recondidon&d- Warranted 



OVpple® Modem 

89 



• Hayes Compatible ^ 

• 300 Baud - New V 
•With Apple Ace. Kit 

^ J200 Baud $195 Limited Supply 




ORDERUNE - 



c 



a -800-82 1-3221 



L For a complete llstling of products 
CALL FOR OUR LATEST CATALOG 



( ImageWriter™ Printer" 



J-fte: 



^.^^ ^. •Dot Matrix 
n-'"-'\ *V^ Serial Printer' 



New\ 
Neiul 



345 



f* Graphics/Text 
;RBoondi!ioned-Wanranted w/o cable 



Apple® Letter Quality 
New Printer 

Low ^^ 
Low v.^ 
Pricet 

Reconditioned - Warranted 




'495 



Apples lie 



Carry Case 

last J. C/; 

Makes a Great Briefcasel 




BPI® for'ttie-Apple® II & ll+ 



Accounting Software 



BPI 



fugg- „ $ 
List Per ~ 

.6495:;. Module 



189 



/^ Apple®/// 

• 256K - full-function keybaord 

• CPU, Monitor, Disk Drive 

• 4 Expansion slots 

• Great for accnt/business 



Warranted 

Reconditioned 

. With Smb ProFile $999 




Introduce yourself to a fresh new concept called 
Remarketing. Sun is the nation's largest support 
center for obsolete Apple® products. For questions 

FT T y y service and support call Sun, Each 

•J ■" ^ product wt sell camcs a 

S SERVICE/ saflsfection guarantee. 

AND SUPPORT saa^edunlllyouard 



Roadwar 2000 

James V. Trunzo 

Requirements: Apple Il-series computers, 
with a 48K minimum, and Commodore 64 
computer; versions under way for Atari 
ST and IBM PC and compatibles. 



America has become a battleground; 
the word "civilization" is rapidly be- 
coming as much an anachronism as the 
concept of peace. Bacterial warfare, in- 
sidiously brought into the country and 
spread by fanatics whose hatred of the 
United States was greater than their 
fear of death, has reduced this once- 
great nation into a state of anarchy 
where rule goes to whoever has the 
power to enforce it. In the year 2000, it 
is the road warriors who control the 
land. But there is hope. 

Of course, in Roadwar 2000, a re- 
cent release from Strategic Simulations, 
you are that hope. A patriotic leader 
and one of the few people who know of 
the plan to cure the deadly bacteria and, 
in the process, return control of the 
country to what is left of the Federal 
Government, you must recruit a road 
gang, build it into a force, and begin 
taking over the major cities, one by one. 
By doing so, you will be able to locate 
the eight scientists who jointly hold 
part of the formula for the vaccine that 
will destroy the deadly microbes that 
have crippled a nation. It goes without 
saying that the job will be both danger- 
ous and difficult. 

A Sprawling Adventure 

Roadwar 2000 is a sprawling adventure 
game whose battleground covers the 
entire continental United States, Mexi- 
co, and the Bahama Islands. The idea 
for the game obviously grew out of the 
very popular Mad Max movies, but SSI 
has successfully expanded the concept 
of the road warrior into a full-fledged, 
multi-faceted adventure game. The game 
includes a wide variety of possibilities 
and requires the player to think just as 
shrewdly in noncombat situations as he 
or she does while fighting. Though 
combat will be both necessary and fre- 
quent, the player must never lose sight 
of the primary goal: locating the eight 
scientists hidden around the country. 
As a leader of a road gang, you 
must not only direct your force in com- 
bat but also provide for them — which 
means arming and feeding each man. 
Therefore, you must know when, 
where, and how to forage for food, 
medicine, and weapons. You must 
make decisions on how and when to 
recruit more members into your road 
gang, particularly the "specialists" like 



military advisors, politicians, and doc- 
tors. Each one of these specialists will 
perform a particular function. A top- 
notch drill sergeant, for example, will 
decrease desertions, train your men to 
fight better, and increase the chances of 
promotions for your lowly escorts. 

Handling your forces is obviously 
an important task, but it is equally im- 
portant to know how to handle your 
vehicles, As the title implies, if you 
control the highways, you control the 
country. Without well-equipped, well- 
fueled transportation, you won't sur- 
vive. Roadwar 2000 offers 15 vehicle 
types with which to work, each rated 
individually in 24 different categories 
that run the gamut from number of tires 
to handling ability. Motorcycles and 
compacts are easy on gas and highly 
maneuverable, but are reduced to using 
hit-and-run tactics in combat. A bus, on 
the other hand, can be turned into a real 
war wagon and transporter, if you have 
a good supply of fuel and spare tires. 
Your decisions on the make-up of your 
road gang's vehicles spell the difference 
between success and failure in many 
cases. 

Deadly Encounters 

As you crisscross the country, exploring 
120 cities and dealing with over 30 
types of terrain, you must learn to 
trade, talk, or fight with a truly eclectic 
group of people; Foot Gangs might take 
the form of mercenaries, street gang- 
sters, armed rabble, mobs of the needy, 
or even cannibals; and any of these 
types can be found in what remains of 
once-thriving cites. 

Residents, while more stable in 
most cases, aren't always what they 
seem either. Those National Guardsmen 
naight be lawful or they might be rene- 
gades; those friendly masses awaiting 
your envoys might be The Reborn who 
want only peace, or Satanists waiting to 
bushwack you. Bureaucrats who control 
municipalities will want you to pay for 
the privilege of passing through their 
city or town, and Survivalists are notori- 
ously trigger-happy and suspicious of 
strangers. And for every healer you 
meet, there's a diseased, psychotic Mu- 
tant, the result of nuclear explosions. 

Not that the roads are any safer. 
Many of the "types" already men- 
tioned have vehicles, too, and are more 
than willing to give you special atten- 
tion as you cruise the highways. 

When combat occurs, and it will, 
the fighting can be resolved in several 
ways. The player may opt for Abstract, 
Tactical, or Quick combat, each having 
its own advantages and disadvantages. 
If you choose to forego detailed road 
combat, the resolution of the encounter 
is Abstract, The computer rapidly com- 




Roadwar 2000 is a futuristic battle 
adventure that takes you across the con- 
tinental U.S. and into Mexico and the 
Bahamas. 

pares all pertinent data of the opposite 
forces (number and type of vehicles, 
men involved, weapon availability, and 
so on) and displays the bloody results: 
number of men lost, vehicles lost and/ 
or damaged. 

If you prefer detailed, graphic com- 
bat, you are given a subchoice of allow- 
ing the computer to handle deployment 
of vehicles and allocation of weapons 
or of taking care of these details your- 
self. Once this has been decided and 
acted upon, tactical combat begins. You 
are then required to choose movement 
and targets for each of your vehicles. 
Your options are many. Even ramming 
and boarding may occur. 

A compromise choice is Quick com- 
bat. Here the player is given the flavor of 
full tactical combat, but sacrifices many 
of the options available under Tactical 
combat. No boarding or capturing of an 
enemy's vehicle may occur during 
Quick combat, for example. 

Roadwar 2000 combines the excite- 
ment of individual combat with the 
strategy and tactics of a campaign to 
give the player the best of both worlds. 
Throw in the aesthetically pleasing 
graphics and the variety that guaran- 
tees a long shelf life, and you have yet 
another successful product from SSI. 

Roadwar 2000 

Strategic Simulations (SSI) 

1046 N. Rengstorff Avenue 

Mountain View, CA 94043 

$39.95 © 



78 COMPUTSI March 1987 




Computers and Society 



Dovid D. Thornburg. Associate Editor 



Demons And Events, Part 2 



Last month we started to explore 
the world of event-driven program- 
ming. As I mentioned at that time, 
event-driven programs are different 
from traditional computer pro- 
grams in that the computer can be 
made to check the status of certain 
events automatically, without ex- 
pressly checking for these events in 
a loop. 

For example, a traditional com- 
puter program that searches for cer- 
tain events may have a loop that 
looks something like this: 

1000 if button-down then do-button-event 
1010 if joystick then move-cursor 
1020 if keypress then accept-text 
1030 if end-of-!ine then word-wrap 
1040 go to 1000 

The program will run in this loop 
forever until one of the tested con- 
ditions comes true, at which point 
the appropriate subroutine gets 
executed. 

In event-driven programs, var- 
ious conditions are tested at the 
beginning of each line of the pro- 
gram, no matter where these lines 
are or what they are doing. Once an 
instruction turns on the checking of 
an event, that event is looked for all 
the time, unless the program specif- 
ically disables the event checking. 

Events And The Mac 

Macintosh programming with lan- 
guages like ZBASIC consists of set- 
ting up the starting windows and 
menus, creating subroutines to 
handle various events, turning on 
the event checking, and then 
spending the rest of the time run- 
ning in a simple loop. An example 
might be: 

1000 REM SAMPLE PROGRAM 
1010 GOSUB "SETUP MENUS" 
1020 GOSUB "SETUP START 

WINDOW" 
1030 ON MENU GOSUB "HANDLE 

MENUS" 
1040 ON DIALOG GOSUB "HANDLE 

DIALOG" 
1050 ON MOUSE GOSUB "HANDLE 

MOUSE" 



1060 ON BREAK GOSUB "STOP 

PROGRAM" 
1070 MENU ON : DIALOG ON ; MOUSE 

ON : BREAK ON 
1080 GOTO 1080 
1090 END 



2000 "SETUP MENUS" 
...and so on 

When this program is run, the start- 
ing instructions are executed in se- 
quence. Lines 1030 through 1060 
indicate which subroutines are to be 
executed when a particular event 
occurs. The event checking is turned 
on in line 1070, and the program 
then enters a loop in line 1080. 

At this point, the event checker 
looks to see what is happening 
from the user's perspective each 
time line 1080 is executed. If the 
user pulls down a menu and selects 
an item, the subroutine HANDLE 
MENUS is executed. This routine 
has the task of finding out which 
menu item has been selected and of 
taking the appropriate action. Once 
this task has been completed, the 
routine returns to line 1080. 

An interesting feature of event- 
driven programming is that events 
are checked for at the beginning of 
each line, no matter where in the 
program the event takes place. For 
example, if the user has selected a 
menu item and then presses the 
"break" key, this event will be de- 
tected, even if the computer is run- 
ning a routine for another event. 

An Event-Handling Routine 

Once an event has occured and 
control is passed to a special sub- 
routine, special functions can be 
used to tell what happened. For 
example, a menu-handling routine 
written in ZBASIC for the Macin- 
tosh may look something like this: 
"HANDLE MENUS" 
whichmen = MENU(O) 
whichitem = MENU(l) 
IF whichmen = 1 AND whichitem = 1 



THEN "open file" 



RETURN 



Each event (for example, selecting a 
menu item, moving the mouse, or 
clicking in a window) has its own 
special set of functions that can be 
used in subroutines to find out ex- 
actly what happened. Based on the 
output of these functions the pro- 
grammer can make the program do 
what he or she wants it to do. 

Events And 
Other Computers 

Event-driven programming is by no 
means limited to the Macintosh. As 
I mentioned last month, my first 
experience with this method of pro- 
gramming came through my expo- 
sure to Atari Logo on the old model 
400, The Quick BASIC compiler 
from Microsoft for the MS-DOS 
computers supports events. Event- 
driven programming languages are 
becoming available for most popu- 
lar computers. 

In fact, you probably have at 
least one event loop running in ev- 
ery program you write. If your com- 
puter lets you stop a program by 
pressing CTRL-C, you are experi- 
encing the result of an event — the 
pressing of a special key. Typically 
this event is checked for automati- 
cally, even if you don't want it to be! 

The Advantages Of Events 

Writing event-driven programs re- 
quires a slight philosophical shift in 
thinking from that used when writ- 
ing traditional programs. Rather 
than thinking about the program 
from the programmer's perspective, 
the software author has to be con- 
stantly thinking about the user. The 
user is going to perform some activ- 
ities — typing on a keyboard, mov- 
ing a mouse, and so forth. Each of 



Morch 1987 COMPUTEI 79 



these activities is going to be initiat- 
ed by ttie user, and it is the job of 
the program to respond appropri- 
ately to these external events. 

This style of programming fa- 
cilitates the creation of programs 
where the user can jump from activ- 
ity to activity without having to be 
carried through a rigid sequence of 
steps dictated by the programmer. 

Problems With Events 

Event-driven programs are tricky to 
debug when you first start learning 
how to write them. One of the disci- 
plines I found essential was to dis- 
able events (with commands like 
MENU OFF) while they were being 
handled. 

And, since you can't always 
know which line is being executed 
when an event is detected during 
the program run, the programmer 
gives up a certain amount of control 
over the ultimate interaction be- 



tween the user and the program. 

Why Bother? 

Event-driven programs have a spe- 
cial feel when you run them. It is as 
though the programmer has antici- 
pated the user's every move and 
desire and is ready to do anything 
at any time. It is true that this same 
feel can be created by programmers 
using just about any language in- 
cluding hand-crafted machine 
code, but the special features of lan- 
guages that support events make it 
easy to put the user in charge. 

To my way of thinking, the 
central task facing any computer 
programmer is to write programs 
that make the computer disappear 
from the user's consciousness. A 
well-written program lets the com- 
puter fade into the background, al- 
lowing the user to touch the 
application itself rather than face a 
burdensome interaction with a 



clumsy machine. 

There are no easy rules that can 
be used to show how to create appli- 
cations that meet this goal. A good 
programmer is a magician who sus- 
pends reality and creates the illusion 
that the user is interacting with a 
document, a magic kingdom, a 
drawing, a piece of music, a finan- 
cial calculation, interstellar travel, or 
just about anything except the phys- 
ical reality of the computer through 
which this fiction is being created. 

We who write and design pro- 
grams are in the fantasy and magic 
business. Languages that support 
events make our job just a bit 
easier. 

Dr. Thornburg's most recent product 
is Calliope'^" a "nonlinear" idea pro- 
cessor for the Apple He, c, G5, Macin- 
tosh and MS-DOS computers. He 
welcomes letters from readers and can 
be reached in care of this magazine.© 



CAPUTE! 



Disk Fix For IBM 

This file recovery utility from the 
January 1987 issue (p. 77) is seri- 
ously flawed. Do not attempt to use 
this program. "Disk Fix" does not 
properly recover deleted files, and 
will in many cases scramble a por- 
tion of the disk directory. We re- 
gret any inconvenience that may 
have resulted from the use of this 
program, and we ask that you im- 
mediately delete any copies you 
may have made. The program is 
also on the COMPUTE! Disk for 
November, December, and Janu- 



ary, and should be deleted from 

that disk as well. 

Disk Fix will damage the disk 
directory when used on a disk 
containing more than 32 pro- 
grams or one formatted other than 
double-sided with nine sectors per 
track. If you suspect that your disk 
directory has been damaged by 
this program, you can recover lost 
files using the DOS utility pro- 
gram REC0VER.COM, which is 
on your DOS master disk. Refer to 
your DOS manual for information 
on using RECOVER. 



Using COMPUTEI's IBM Disk 

The label on the COMPUTE! Disk 
containing IBM programs from the 
November and December 1986 and 
January 1987 issues gives instruc- 
tions for transferring the DOS system 
files to the disk. However, if you 
attempt to follow these instructions, 
you'll receive the following message: 
No room for system on destination disk 



This occurs because the disk was 
not properly formatted to accept 
the DOS files. However, the disk is 
still fully functional; this oversight 
in no way affects the operation of 
the programs on the disk. Simply 
boot using another disk, load 
BASIC, insert the COMPUTE! Disk, 
and enter 
RUN "MENU" 



If you would prefer to have the 
COMPUTE! programs on a bootable 
disk, simply copy all the files from 
the COMPUTE! Disk to one that al- 
ready contains the DOS system 
files. If you are unfamiliar with the 
syntax for the COPY command, re- 
fer to your DOS manual. 



Amiga Jigsaw 

The listing for this program from 
the February 1987 issue (p. 48) was 
accidentally rearranged. The pro- 
gram should start with the line in 
the second column which reads 
DEFINT a-z. All lines prior to this 
one should appear between the line 
in the third column which reads 
cLasl = nocoLs.pzL — 1: rLast=n- 
rows.pzL — 1 and the following 
one, seLection.made=true. If you 
entered the program as listed, you 
can use the cut-and-paste features 
of the BASIC editor to move the 
block of lines to its proper position. 



BO COMPUTEI March 1987 




Microscope 



Sheldon Leemon 



A reader has written to complain 
about inaccuracies in a recent col- 
unnn on the Apple IlGS, which stated 
that the computer can't use current, 
inexpensive 5 'A -inch Apple drives. 
Actually, the whole truth is that the 
GS comes with a built-in disk con- 
troller that doesn't work with the 
old drives, but it's possible to over- 
ride it by plugging your old disk 
controller card into the proper slot. 
Of course, the old drives probably 
can't use ProDOS 16, so while you 
can run the old software with them, 
they may not do you much good for 
the new 16-bit software. 

While I hope this sets the record 
straight, I tend to doubt that the 
prior column did much to hurt Ap- 
ple IlGS sales. For one thing, Apple 
hasn't been able to produce enough 
to send dealers more than a couple 
of units each. Rumor has it that one 
of the problems is that Ensoniq can't 
produce enough of the custom 
sound chips that provide one of the 
more innovative features of the new 
computer. One good thing about 
this delay is that it provides time for 
a lot of third-party support to devel- 
op. In fact, I've already seen ads for 
a $200 3V2-inch disk drive for the GS 
from Central Point. That should 
really put this "cheap disk" contro- 
versy to rest. 

4 + + <( * * 4c rillk ril * 41 )|k Miili * 9fc III * 1(1 

Although there was no official price 
reduction on the Apple Ik when 
the IlGS was introduced, price 
slashing at the dealer level has been 
almost frenzied as of late. One 
chain has been selling off its excess 
inventories through a discount out- 
let for about $550 retail, which is 
about $400 less than list price. And 
in view of Apple's strict enforce- 
ment of a ban on mail order sales of 
its computers, it was pretty shock- 
ing to see the Apple lie and Image- 
Writer printer being offered for 
under $1000 in an ad on the back 
cover of the latest catalog from 



C.O.M.B. liquidators. It looks like 
somebody doesn't believe that the 
"Apple 11 forever" slogan applies to 
the lie. 

A lot of industry "experts" have 
said that IBM "legitimized" the per- 
sonal computer when it came out 
with the PC. What they may have 
meant is that IBM's contribution is 
so big, heavy, and expensive, that 
the businessman can buy one with- 
out fear that his associates will con- 
fuse his new personal productivity 
tool with the "toy" computers sold 
by mass merchandisers. If that's the 
case, those same experts may soon 
be saying that Hyundai has "illegi- 
timized" the PC, The large Korean 
manufacturing concern, whose 
most visible marketing effort in this 
country so far has centered around 
an extremely inexpensive automo- 
bile, has now boldly gone where no 
PC has gone before — Toys "R" Us. 

Hyundai's entry into the high- 
ly competitive and extremely 
crowded PC-compatible field is 
called the Blue Chip. The market- 
ing strategy for the computer is sim- 
ple, but likely to be effective: Take a 
solidly built machine with a one- 
year warranty from a well-known 
company and sell it for a price that's 
just a little bit above what you'd 
pay to import the parts from the Far 
East and put it together yourself. 
This package is so attractive that 
Hyundai has already signed up 
hundreds of small independent 
computer retailers as Blue Chip 
dealers, as well as lining up quite a 
number of mass merchants and dis- 
counters. So it came as no great 
shock when I saw a full-page ad 
from Toys "R" Us in my Sunday 
newspaper advertising the Blue 
Chip, a fully IBM PC-compatible 
computer, for $699. 

Being fortunate enough to live 
in Detroit, one of the four Toys "R" 
Us test markets for the Blue Chip, I 



hurried over to see for myself. Just 
as I had assumed, there was the 
Blue Chip, sitting inside the same 
glass showcase as the Commodore 
128 and 64 and the Atari 520 ST. 
Next to the case was a stack of 
brochures which listed the features 
of the machine, including a 512K 
4.77-MHz motherboard, one S'A- 
inch drive, an AT-style keyboard 
(with the left Shift key in its proper 
place), built-in serial and parallel 
ports, six full-size slots, and a 130- 
watt power supply. Unlike most 
clones, the Blue Chip is packaged in 
an attractive case that is much 
smaller than that of the IBM PC, 
and it has the power switch right in 
front, where you can reach it. The 
$700 price includes a Hercules- 
compatible monochrome graphics 
adapter, but not the monochrome 
monitor, which costs $90 extra. 
Still, for less than $800 you get a 
working PC system made by a rep- 
utable company and a money-back 
guarantee that it will run all of your 
IBM software — from a store where 
you can get a 30-day over-the- 
counter-exchange if it doesn't 
work. For the money, only the 
Tandy 1000 series comes close. 

While this is a pretty attractive 
package, it remains to be seen 
whether Toys "R" Us can sell a 
"real" PC. The price is certainly 
comparable to that of the other 
computers the store sells. A one- 
drive Commodore 128 system with 
color monitor sells there for $820, 
and the color Atari 520 ST system 
with one drive, for $880. But de- 
spite the store's assurances in a bro- 
chure that Toys "R" Us has trained 
sales people and the largest selec- 
tion of home computers, I still 
wasn't quite convinced. Maybe it 
was the fact that the brochure was 
covered with the logos of home 
computers like the Mattel Aquarius, 
the Coleco Adam, and the Texas 
Instruments 99/4A. @ 



March 1987 COMPOTE) 81 




Telecomputing Today 



Arlan R. Levitan 



Packet-Switching Rule Changes 



This column is difficult for me to 
write. This particular one. Over the 
years regular readers of Telecom- 
puting Today and I have learned 
more about telecommunications 
and laughed at ourselves in good 
measure along the way. I'm not 
laughing right now. 

One of the fundamental build- 
ing blocks of today's low-cost tele- 
communications is the availability of 
reasonably priced packet-svritching 
services. Packet-switching net- 
works, such as those run by Tele- 
net, Tymnet, CompuServe, and 
General Electric, allow personal 
computer users to access remote 
computers with a local phone call. 
Telenet's popular PC Pursuit ser- 
vice, which gives computer hobby- 
ists virtually unlimited access to 
BBSs all over the country for $25 a 
month, plus local phone charges, is 
possible only because it takes ad- 
vantage of an existing packet net- 
work during off-hours. 

The Federal Communications 
Commission is considering reregu- 
lating packet-switching networks. 
Among the changes being consid- 
ered is the elimination of free local 
telephone access to those networks. 
Under the new rules, packet-switch 
providers would have to pay access 
fees to local telephone companies. 
A similar arrangement currently in 
place requires long-distance service 
providers such as AT&T, MCI, and 
Sprint to pay access charges for con- 
nection to local phone networks. 

Potentially A Major 
Impact 

"If this occurs, it might eventually 
double -or triple the costs to those 
using packet-switching networks to 
access commercial online databases 
and information services, and triple 
or quadruple the costs to those 
using Telenet's PC Pursuit," says 
Philip M. Walker, vice president 
and regulatory counsel for Telenet 



Communications . 

"In terms of cost impact," 
Walker said, "if we had to pay local 
access charges, it would cost us 
about $3.60 an hour at the originat- 
ing end, for calls made by users to 
online databases and information 
services like CompuServe and The 
Source. 

"And with PC Pursuit, for 
which we have out-dial modems, 
we would have to pay not only 
$3.60 per hour access fees at the 
originating end, but also $4.80 at 
the terminating end, a total of about 
$8 or $9. Obviously, to survive, we 
would have to add those additional 
charges to our current fees and pass 
them on to our consumers," Walker 
said. 

According to Walker, FCC ap- 
proval of changes being considered 
under the reregulation initiative 
{called Computer III by the FCC) 
"would really have a major impact 
on anyone using a packet-switching 
service to access online bulletin 
boards, databases, or information 
services aimed at the residential 
user. They are just going to get 
creamed if this happens." 

Who's pushing for the new 
rules? It appears to be the local Bell 
Operating Companies (BOCs, a.k.a. 
your phone company). But to be 
fair, things may not be as gloomy as 
Walker paints them. The entry of 
the BOCs into the packet arena may 
bring cheap, high-speed packet ser- 
vice to the home user (such as that 
which is available via Pacific Tele- 
sys's project Victoria). The present 
packet switchers may fear that the 
cost of converting their current net- 
works to new technology will be 
prohibitively expensive, making it 
difficult for them to compete with 
the BOCs. 

Express Your Views 

Why is writing this so hard for me? I 
spent over eight years of my life 



working for one of the Bell Operat- 
ing Companies. My wife still does. 
Many of my friends have, as they 
say within the BOCs, "bell- 
shaped" heads. I was proud of the 
quality of nation's phone system 
and how well the system worked. I, 
and many other Bell employees, 
had mixed feelings about divesti- 
ture of AT&T. To me, the most 
positive aspect of deregulation of 
the phone system was the subse- 
quent wave of cheap, high-quality 
telephones with lots of nifty 
features. 

We already have cheap mo- 
dems. Lots of them. I find it difficult 
to have a positive attitude about 
saddling the packet switchers, and 
in turn, their users, with additional 
tariffs that may add significant cost 
to accessing information services 
and bulletin boards (via services 
like Telenet's PC Pursuit). 

I strongly feel that the changes 
engendered within the FCC's 
"Computer III" rules should not be 
rushed into law. We all need more 
information than is currently avail- 
able in the public forum to make an 
intelligent, informed decision on 
this matter. 

Even with the limited infor- 
mation that is currently available, 
I'm sure that some of the readers of 
this column feel the proposed 
changes would be a positive move. 
Others, at this time, may have diffi- 
culty seeing any benefit to the tele- 
computing hobbyist. 

The FCC will reportedly vote 
on the new rules by the end of 
March 1987. Regardless of your 
feelings, I urge you to express your 
views to the Federal Communica- 
tions Commission by wridng: 

The Honorable Mark Fowler 

Chairman 

Federal Communications 

Commission 

Washington, DC 20554 ® 



82 COMPUTE March 1<>87 




The World Inside the Computer 



Fred D'lgnozio, Associate Editor 



When Buying A New Computer: Don't Ask Me! 



I teach afternoon and evening teach- 
er workshops at Cahaba Heights El- 
ementary School in Birmingham, 
Alabama. One day before the work- 
shops I had been teasing the secre- 
taries in the school office about a 
phone call I expected to get from a 
"Mystery Personality." The secre- 
taries' guesses about the personality 
ranged from Tom Selleck to Ronald 
Reagan, Rick Lazenby, the school's 
principal, made several visits to my 
classroom to try to trick me into 
divulging the mystery caller's name. 
But 1 wouldn't talk. 

That night, right in the middle 
of my workshop, with teachers 
gathered all around me. Rick burst 
into the room and announced, "Da- 
vid Hartman, from Good Morning 
America, just called you on the 
phone, and 1 hung up on him. You 
didn't tell me who was calling, so I 
thought it was a crank call." 

"Aacck!!" I said. 

Expert Advice 

Rick delighted in the look of panic 
on my face and said, "Ha! Ha! Just a 
joke! David's still on the phone. 
You can take it down in my office." 
I said goodbye to my startled teach- 
ers and flew out of the room, raced 
down the school corridors to Rick's 
office, and picked up the phone. 
Why was David calling me? Maybe 
he wanted to ask me back on his 
show. But 1 was wrong. "This is a 
personal call," said David, in his 
warm and very famous voice at the 
other end of the phone. "I want to 
buy my family a personal computer 
for Christmas. Any good ideas?" 

"Sure!" 1 blurted. "The Apple 
IlGS!" I started to describe to David 
all the wonderful things about the 
new Apple computer, including its 
4000 colors, its 15 musical instru- 
ment "voices," its 256K memory, 
its compatibility with other Apple II 
computers, and its Macintosh inter- 
face. As I spoke, I heard David 



agreeing at the other end, and I 
knew he was sold. 

However, when my heart 
stopped racing and I had caught my 
breath, 1 suddenly had a quick 
flashback. Only the week before, I 
had been preparing for a press con- 
ference to launch my Multi-Media 
Classrooms project with 26 Ala- 
bama and Canadian schools. Ap- 
ple's regional office in Nashville, 
Tennessee, had loaned us a IlGS for 
the press conference, but neither 
my efforts nor the efforts of the 
Apple officials and the local Apple 
dealers could make it work. 

There was nothing wrong with 
the computer. It was just too new. 
No one was sure how to plug in the 
5V4-inch disk drives along with the 
(daisychained) SVz-inch drives. We 
had copies of lots of software, made 
at the dealers with an old lie (Pro- 
Dos) utilities disk, but it turned out 
the software was uncopyable, and 
we ended up with blank disks. The 
two Bose speakers promised some 
unbelievable sounds, but were 
strangely silent since we didn't 
have the right demo programs. And 
although we loved the new Apple- 
Color RGB monitor, all we could 
put on it was a black-and-white 
"Meet Mr. Mouse" demo program. 

No one was to blame. I was 
still in love with the IlGS. But I 
realized, talking to David Hartman, 
that it was not the computer I 
should be recommending for 
Christmas 1986. 

A Quick Turnabout 

So I did a quick 180-degree turn 
and started peddling the Apple lie. 
"You've heard the Apple motto, 
'Apple II Forever'?" I asked, still 
upbeat. "Well, you can get an Ap- 
ple lie, a veteran machine that runs 
over ten thousand programs; then 
early next year you can go to a 
dealer and have your He turned into 
a IlGS — for only about four hun- 



dred dollars." 

"But what's wrong with the 
IlGS?" David asked, a little taken 
aback after my fancy footwork. 

"Nothing," I said, torn be- 
tween my great excitement about 
the IlGS and my teachers' continu- 
ing lack of success in finding special 
software to make it shine. "Re- 
member," I said, "the IlGS is just a 
baby. Give it a few months to grow 
up." 

David thanked me and hung 
up. And when I hung up at my end 
I felt great, because, for once, I 
didn't feel guilty about my "expert" 
advice. 

It is the average consumer's 
misfortune that a "praise first, criti- 
cize later" cycle in some computer 
journals follows the introduction of 
almost every new computer. We 
journaHsts, editors, and experts 
have the responsibility to be watch- 
dogs for our readers. After all, we 
get to see new machines weeks or 
months before they are on the mar- 
ket, and we get to hear the inside 
gossip of corporate executives and 
computer designers before it be- 
comes public knowledge. 

But, far too often, we fall down 
on the job. We accept manufactur- 
ers' hype on their machines as fact, 
and we unconditionally support a 
new computer launch with excited 
fanfare and warm accolades. 

Are we journalists an unethical 
bunch, in secret conspiracy with 
computer vendors and software 
publishers? No. However, we are 
computer enthusiasts, and we are 
sometimes guilty of letting our en- 
thusiasm and fascination with com- 
puters blind us to the shortcomings 
of some new products. I think in 
view of David's needs, I gave him 
balanced advice. @ 



March 1987 COMPUtEl 63 




The Beginners Page 



C. Regeno 



Getting Started With A Printer 



A printer was the first peripheral I 
got for my computer. As a program- 
mer I find a printer a necessity. I 
need listings to keep track of my 
program because I usually compose 
at the computer and I have always 
felt safer having a hardcopy listing 
of my program in addition to a disk 
or cassette copy. 

After you have all the cables 
properly connected and the ribbon 
and paper loaded, you are ready to 
test your printer. To get a listing of a 
BASIC program on a printer, the 
standard command is LLIST. BA- 
SICS differ; you should check your 
manual. The LLIST and LPRINT 
commands described here work in 
IBM, Amiga, Atari ST BASICs, 
among others. LPRINT also works 
in eight-bit Atari BASIC. (See be- 
low for Apple, Commodore, TI, and 
other styles of printer access.) The 
command works just like the LIST 
command. 

A Simple Example 

Now let's try having the computer 
print something on the printer. You 
may want to refer to my previous 
columns on PRINT statements. In- 
stead of using the standard PRINT 
command, use LPRINT to go to a 
printer. (You may want to PRINT to 
the screen and LPRINT to the print- 
er.) Anything your computer allows 
you to do with the PRINT com- 
mand you can probably do with 
LPRINT— for example: 

200 LPRINT "HELLO" 

210 LPRINT TAB(9);'TNDENT HERE" 

220 LPRINT A,B,C$ 

230 LPRINT X;'TLUS";Y;" = ";X + Y 

240 LPRINT USING "###.##";D 

Now you can read in infor- 
mation from data or enter numbers 
from input, make a few calcula- 
tions, and then print a report. You 
can print a simple message using 
the printer, then perhaps make a 
dozen copies of it by using a FOR- 
NEXT loop or running the program 



several times. You can create print- 
er graphics by using LPRINT state- 
ments with various symbols in 
quotation marks or string variables. 
And you can even print your own 
user-group letterhead, plus address 
labels for all the members. Using a 
printer adds much more to your use 
for a computer. 

Here's a short example to print 
out some homework. Suppose you 
are given a homework assignment 
to calculate the areas of triangles. 
The formula for the area is V2 (base 
X height). Once you know the for- 
mula the assignment is simply a 
matter of using different numbers 
for each problem. Let's have the 
computer do your homework. 

100 REM TRIANGLES 

110 PRINT "WHAT IS YOUR NAMEr' 

120 INPUT N$ 

130 LPRINT N$:LPRINT:LPRINT 

140NP = 1 

150 PRINT:PRINT 

160 PRINT "ENTER TO END" 

170 INPUT "BASE = ",B 

180 IF B = THEN 280 

190 INPUT "HEIGHT = ",H 

200 AREA = B*H/2 

210 PRINT:PR1NT "AREA =";AREA 

220 LPRINT:LPRINT:LPRINT 

230 LPRINT NF;TAB(8);"BASE =";B 

240 LPRINT TAB(8>;"HEIGHT =";H 

250 LPRINT TAB(8>;"AREA =";AREA 

260NP = NP + 1 

270 GOTO ISO 

280 LPRINT:LPRINT:LPRINT 

290 END 

This is just a simple program to 
get you started using a printer. You 
can get an idea of how LPRINT is 
used. LPRINT with nothing else in 
the statement will print a blank line 
to the printer. LPRINT TAB(8) will 
indent eight columns before start- 
ing to print. You may either print a 
message in quotes or a variable. 

Special Codes, 
Special Features 

Most printers have many features. 
You can probably change print 
styles (italics, boldface, compressed 
print, expanded print, underlining, 



and so on). Again, consult your 
printer manuals to learn how to 
change print styles or to use special 
features of that particular printer. 

Some of the ASCII character 
codes have special meanings for 
printers, and you can print the 
CHR$( ) to perform those func- 
tions. For example, LPRINT CHR$ 
(13) is like pressing the RETURN 
key to get to the next line. For most 
printers, LPRINT CHR$(12) is top of 
form, which moves the paper to the 
top of the next page. 

Most printers use a combina- 
tion of escape sequences to change 
print styles. The ASCII code for 
ESC (escape) is 27, so you can 
LPRINT CHR$(27) and the code for 
your particular style. For example, 
on some Epson printers you can 
select letter-quality printing with 
LPRINT CHR$(27) "x" CHRSd) 

Within a program I like to set 
E$ equal to CHR$(27) to save typ- 
ing if I am using a lot of escape 
codes: 
100ES = CHR$(27) 

Printing Alternatives 

Not every version of BASIC pro- 
vides the LLIST and LPRINT state- 
ments. Among those that do not are 
the Commodore and Apple. On 
Commodore computers you need 
to open a communication channel 
to the printer, then direct output to 
that channel. For example, Com- 
modore computers use this se- 
quence of commands in lieu of 
LLIST: 



OPEN 4,4 


open file 4 to printer 




(device 4) 


CMD4 


direct output to 




printer 


LIST 


list program on 




printer 


PRINT#4:CLOSE 4 


redirect output to 




screen 



In place of LPRINT, you open a 
channel to the printer, then print to 

that channel: 



84 COMPUTEI Marcti 1987 



10 OPEN 4,4 

20 PRINT#4/'HEl.LO" 

30 PRINT#4 

40 CLOSE 4 

50 END 

For the Apple II series, you 

would use the following sequence in 
lieu of LLIST (assuming that your 
printer interface was installed in slot 
1, the most common configuration): 



PR#1 direct output to printer 

LIST list program on printer 

PR#0 redirect output to screen 

In place of LPRINT in pro- 
grams, you must use CHRS(4) to 
redirect output to the slot where the 
printer interface is installed: 

10 PRINT CHRS(4)"PR#1" 

20 PRINT "HELLO" 

30 PRINT CHRS(4)"PR#0" © 



COMPUTE! 

TOLL FREE 

Subscription 

Order Line 

1-800-247-5470 

InIA 1 -800-532- T 272 




ST Outlook 



Philip I. Nelson, Assistant Editor 



Who Is That Man, And Why Is He Smiling? 



This month's program demon- 
strates a rarely mentioned graphics 
feature of the ST: software sprites. 
The program creates a file named 
SPRITE. PRG, an assembly lan- 
guage program that runs from the 
desktop. After you've run the file- 
maker, go to the desktop and dou- 
ble-click SPRITE.PRG, When the 
desktop returns to normal, press 
Alternate-Help. Three sprites — lit- 
tle men with pipes in their 
mouths — cruise effortlessly around 
the desktop, rebounding when they 
approach the screen borders. To get 
rid of the sprites, reboot with the 
reset button. 

What's My Line? 

The ST has no special hardware to 
display sprites — independent, 
movable images — on the screen. 
However, the mouse pointer is an 
object that behaves much like a 
sprite, moving anywhere on the 
screen without disrupting images 
that lie in its path. The sprites in 
this demo program are created via 
the same system routines which the 
ST uses to display its mouse point- 
er. Specifically, an ST software 
sprite is a creature of the line A 
assembly language interface which 
provides graphics support for GEM. 
Line A operations are handled 
in an interesting way. The 68000 
microprocessor generates an excep- 
tion, or error condition, under a 
variety of special circumstances. 
Some exceptions are true errors; on 



the ST, these cause cherry bombs to 
appear on the screen. Others are 
purposely left untlefined for the 
system programmer's use. In the 
ST's operating system, exception 10 
($A) is used to implement 16 low- 
level graphics operations. These 
commands allow you to draw lines 
and polygons, plot and unplot 
points, copy text or other images, 
draw and erase a software sprite, 
and hide, show, or transform the 
shape of the mouse pointer. 

The term line A refers to the 
fact that each opcode starts with 
$A. The draw sprite operation 
($AOOD) draws a sprite on the 
screen and saves an image of the 
underlying area in a buffer. The 
undraw sprite operation ($AOOC) re- 
stores a saved image from the buff- 
er to its previous screen location, 
effectively erasing the sprite. To- 
gether, these commands allow you 
to move an object nondestructively 
by erasing and redrawing it in a 
series of locations. 

Time Slices 

And Transparency 

SPRITE.PRG moves the sprites as a 
background process during the ST's 
vertical blank interrupt, so they're 
largely invisible to GEM. You can 
open and close windows, make 
menu selections, and even run pro- 
grams. There are some cosmetic 
conflicts, however, which we'll ex- 
plain in a moment. 



The vertical blank interrupt — 
the interval during which the moni- 
tor's electron beam returns from the 
bottom to the top of the screen — 
gives the computer tiny slices of 
time in which to perform back- 
ground chores such as reading its 
keyboard. The ST provides a simple 
means for installing a program as a 
task to be performed during the 
vertical blank interval. In the sys- 
tem variable area is a job queue 
with eight slots. Ordinarily, one slot 
is occupied and seven are vacant. 
During each vertical blank, the 
computer scans the queue and per- 
forms the tasks found in occupied 
slots. To install the working portion 
of SPRITE.PRG as a background 
task, we simply find a vacant slot in 
the queue and store our program's 
address there. Henceforth, the ST 
executes our code once each vertical 
blank. (This simple demo program 
takes some installation shortcuts, 
assuming that the queue appears in 
its usual location and that it con- 
tains at least one vacant slot.) 

Running on the interrupt al- 
lows our sprites to operate with a 
reasonable degree of transparency. 
However, since GEM doesn't know 
that they're present, some conflicts 
are inevitable. SPRITE.PRG takes 
pains to insure that its sprites don't 
restore unwanted data to the un- 
derlying screen when their paths 
cross. But the system also redraws 
the mouse pointer — itself a soft- 
ware sprite — during each vertical 



March 1987 COMPUni 85 



blank. The ST doesn't know when 
and where our sprites are drawn, 
and the sprites pay no attention to 
the mouse pointer's peregrinations. 
Thus, conflicts may occur when the 
sprites and the pointer move 
through the same turf simulta- 
neously. The pointer can restore 
part of a sprite after the sprite has 
already moved to another spot, or a 
sprite can restore part of the pointer 
after the pointer has moved else- 
where. Other screen changes (espe- 
cially scrolling, which moves a big 
chunk of screen in a hurry) can also 
cause the sprites to deposit bits and 
pieces of themselves on the screen. 

These conflicts are due entirely 
to the fact that SPRITE.PRG runs 
on the interrupt rather than as a 
conventional program. In an 
arcade-type game or other program 
that doesn't run in the background, 
you have control of all screen 
events and can easily prevent such 
occurrences. 

By the way, please don't per- 
form any important work — espe- 
cially disk operations — while 
SPRITE.PRG is active. Driving a 
program on the interrupt slows the 
whole system to a certain extent, 
and disk drives are notoriously sen- 
sitive to timing disruptions. 

Ozymandias With A Pipe? 

Just who is the man with the pipe? I 
didn't draw the shape from scratch: 
It comes straight out of an example 
in the Atari development system 
documentation. If the face doesn't 
look familiar, run this ST BASIC 
program: 



10 
213 



? CHR«(2B) |CHR«<29) 
? CHR»C3«) |CHR*<31) 



ing touches on its compiler, which 
transforms GFA BASIC programs 
into stand-alone assembly lan- 
guage programs that run from the 
desktop. (Uncompiled GFA BASIC 
programs can run only from the 
editor/interpreter or the run-only 
interpreter.) The manufacturer 
claims that compiled GFA BASIC 
runs benchmarks like the Sieve of 
Eratosthenes as fast or faster than 
other compiled ST languages (Pas- 
cal, C, and the like). 

English language versions of 
GFA BASIC and the GFA BASIC 
Compiler are now available in the 
United States from MichTron (576 
S. Telegraph, Pontiac, MI 48053). 
Meanwhile, Atari maintains a pro- 
found silence on the subject of 
when — if ever — we might see an 
improved version of ST BASIC. 

SPRITE.PRG Fiiemaker 



420 DATA 4,4C,E3,49,20,7C,0,fl 



What's this jovial fellow doing 
in the ST's character set? I've never 
seen an official explanation, but 
perhaps some pipe-smoking Ozy- 
mandias at Atari simply decided to 
immortalize himself in ROM. Your 
guess is as good as mine. 

More About BASIC 

Finally, here's a quick update on a 
couple of previous topics, GFA 
BASIC programs are not compiled, 
as implied in the January 1987 col- 
umn, but interpreted. Chalk that 
one up to my misreading of a Ger- 
man language user's manual. In the 
meantime, GFA has put the fmish- 



100 
110 

120 
130 

140 
1S0 

160 

170 

180 
190 
200 
210 
220 
230 

240 

2S0 

2t>e 

270 
260 

290 

300 

310 

320 

330 

340 

350 
3&0 
370 

3Q0 
390 

400 
410 



closBiopen "R", 1, "\SPRITE 

.PRB",B 

flald «1,B •» M«ifor J-1 

to 60 

y«-""i-for k-1 to B 

TMd i*ibyt-v«l <"«<H"+z«)i 

y«-y»+chr«(byt) 

c»c+l 1 cht<"chk+c+byti nBMt 

la*t ><*"y*ir-r+liput l,ri 

n»xt 

cloBBilf chk»24S927 th«n 

snd 

print "Typing error in DA 

TA":kill "XSPRITE.PRS" 

DATA 60,1A,0,0, 1,D6,0,0 

DATA 0,66,0,0,3,40,0,0 

DATA 0,0,0,0,0,0,0,0 

DATA 0,0,0,0,20,6F,0,4 

DATA 2C,3C,0,0, 1,0,DC,AB 

DATA 0,C,DC,A8,0,14,DC,A8 



DATA 



DATA 



DATA 

DATA 

DATA 



DATA 

DATA 

DATA 

67 

DATA 

1 

DATA 



DATA 

9 

DATA 

IMTA 

DATA 

DATA 

DATA 

42 

DATA 

DATA 





0, iC, 42, A7, 3F, 3C, 0, 2 

4E,41,SC,8F,23,FC,0, 

1,7A,0,0,S,2,20,7C 

0,0,4,CE,4A,90,67,4 

58,8a,60,FB,22,7C,a, 

0, HC, 20,89, 33, FC, 0,0 

0, 0, 2, 3C, 2F, 0, 3F, 3C 
0,20,4E,4t,5C,BF,42, 

2F,6,3F,3C,0,31,4E,4 

4B, E7, FE, FB, 4A, 79, 0, 

2,3C,67,2,60,SE,4A,7 

0,0,4,EE,66,0, 1,4 
33,FC,0, 1,0, 0,2, 3C 
70, 4, 42, 42, 41, F9, 0,0 

2,42,43,F9,0,0,2,4E 
72,64,D4,7C,a, 12,D2, 

31,81,0,0,33,81,0,0 
SS, 40, 6A, EC, 12,39, 0, 



430 
440 
450 
460 
470 

480 

490 
S00 

510 

520 

530 

540 

550 

560 

570 

580 

590 
600 

610 
620 

630 

640 

650 
660 

670 

680 

690 
700 

710 

720 
730 
740 

750 
760 
770 

780 

790 

B00 
S10 
820 
830 
540 
850 
B60 

870 

880 

890 

900 
910 

920 

930 

940 
950 
960 
970 



DATA 1 , E6, 33, F0, 10,0,0,0 

DATA 2,5A,20,7C,0,0, 1,EC 

DATA 33,F0, 10,0,0,0,2,SC 

DATA 6*0,0,0,80,70,4,61,0 

DATA 0,F4,SS,40,6A,FB,42, 

40 

DATA 41, F9, 0,0, 2, 42, 32, 30 

DATA 0, 0,82,79, 0,0, 2, 5A 
DATA 6D, 14,41, F9, 0,0, 1,D6 

DATA 32,30,0,0,C3,FC,FF,F 

F 

DATA 31, 81, 0,0, 60, A, 82,79 

DATA 0,0,1,E2,6E,2,60,E2 
DATA 41,F9,0,0,2,4E,32,30 

DATA 0, 0,82,79, 0,0, 2, 5C 
DATA 6D, 14,41, F9, 0,0, 1, DC 

DATA 32,30,0,0,C3,FC,FF,F 

F 

DATA 31, 81, 0,0, 60, A, B2, 79 

DATA 0,0, 1,E4,6E, 2,60, E2 
DATA 41,F9,0,0,2,42,43,F9 

DATA 0,0,1,D6,32,30,0,0 

DATA 34,31,0,0,D2,42,31,8 

1 

DATA 0,0,41,F9,0,0,2,4E 

DATA 43,F9,0,0, 1,DC,32,30 

DATA 0,0,34,31,0,0,D2,42 

DATA 31,81,0,0,61,12,80,7 

C 

DATA 0,4,67,6,54,40,60,0 

DATA FF,60,4C,DF,1F,7F,4E 

,75 

DATA 2F,0,41,F9,0,0,2,42 

DATA 33,F0,0,0,0,0,2,3E 

DATA 41,F9,0,0,2,4E,33,F0 



DATA 

DATA 

DATA 



DATA 

DATA 

DATA 

F9 

DATA 

DATA 

IF 

DATA 

DATA 

DATA 

DATA 

DATA 

DATA 

DATA 

,4 

DATA 

4 

DATA 

,54 

DATA 



0, 0,0, 0,2, 40, 24, 7C 
0, 0, 2, 5E, 32, 3C, 0, 85 
C0,C1,D5,C0,41,F9,0, 

1,F2,30,39,0,0,2,3E 
32,39,0,0,2,40,A0,D 
20, 1F,4E,75,2F,0,45, 

0,0,2,5E,32,3C,0,B5 
C0, CI , D5, C0, A0, C, 20, 

4E, 75, 0,2, 0,2, 0,2 
0,2, 0,2, 0,2,0, A 
0,1E,1,2C,2,6C,2,6C 
0,84,0,84,1,76,0,0 
0,0,0, 1,0,0,0,F 
7,F0,7,F0,F,FB,F,F8 
1F,FC, IF, EC, 1F,FC, 18 

1F,FC,1B,4,1F,FC,10, 

1F,FC,1E,3C, 1F,FC,17 

lF,FC,ll,4,F,FB,B,2a 



DATA F,F8,D,D8,7,FB,6,28 

DATA 7,F0,7,D0,2F,F0,2E,1 



DATA 39, E0, 39, £0,36,0,38, 



DATA 0,0,0,22, t8,A, IE, 16 

DATA A, 6, 22, 8, 6,8, 16, A 

DATA 8, 14, A, A, 8, 14, A, 6 

DATA 14,6,2A,B,6,8,6,E 

DATA 6, 6, E, 0,0, 0,0,0 @ 



86 COMPUTEI March 1987 




AmigaView 



Sheldon Leemon 



The Sidecar Arrives 



In what may be a record-breaking 
event for Commodore (or for any 
other computer company), the 
Sidecar has been delivered in the 
same year in which it was an- 
nounced. A scant eight months 
after I first saw the earliest proto- 
types at Comdex, one has arrived at 
my local Amiga dealer. And I must 
say that I'm impressed, and even a 
little excited about this clonelet. 

The Sidecar is an IBM PC add- 
on for your Amiga. Unlike the 
Transformer, Commodore-Amiga's 
noble, flawed experiment with soft- 
ware-only emulation, the Sidecar 
isn't just an IBM PC emulator. It's 
an actual PC that plugs into your 
Amiga. It has an 8088 processor 
running at the standard 4.77 MHz 
speed, a socket for an 8087 math 
coprocessor, 256K of PC RAM (ex- 
pandable to 512K on the mother- 
board), a built-in 5y4-inch 360K 
disk drive, three full-sized IBM- 
type expansion slots, and the Phoe- 
nix BIOS, famed for its close 
compatibility to IBM's BIOS. The 
box is physically about half as wide 
as the Amiga itself, a couple of 
inches higher, and a couple of inch- 
es deeper. It plugs into the expan- 
sion port on the Amiga's right side, 
but it's almost a complete stand- 
alone PC. The IBM applications it 
runs are loaded off the Sidecar disk 
drive into Sidecar RAM, and are 
executed by the Sidecar 8088 pro- 
cessor. The machine depends on 
the Amiga only for its screen dis- 
play, which the Amiga manages 
and displays in a window on the 
Amiga monitor. 

If the Sidecar is little more than 
a PC clone, why shouldn't the 
Amiga owner who wants PC com- 
patibility just buy a cheap clone and 
be done with it? For the answer to 
this question, we turn to the SY 
section of a dictionary, where we 
find the words symbiosis and syner- 
gy. Symbiosis is defined as "the 



living together of two dissimilar or- 
ganisms in close association, espe- 
cially where this is advantageous to 
both." Synergy is defined as "the 
simultaneous action of separate 
agencies which, together, have 
greater total effect than the sum of 
their individual effects." Both of 
these terms apply to the Sidecar 
and its relationship to the Amiga. 

A good example is the Side- 
car's abiUty to share a hard disk 
with the Amiga. One of the first 
things I did with the Sidecar was to 
plug in a 21 -megabyte hard disk on 
a card into one of the expansion 
slots. By using partitioning pro- 
grams on the PC side, I put aside 9 
megabytes of hard disk space for 
the Amiga, and 12 megs for PC 
DOS. The Amiga side mounts as 
device jhO:. The ; is for Janus, the 
name which the Amiga operating 
system calls the Sidecar. Janus was 
the Roman god of beginnings and 
endings, and is pictured as having 
two faces, one in front and the other 
in back of his head, so that he's able 
to look in both directions at once. 

By changing the startup- 
sequence file, you can mount the 
hard disk automatically each time 
the Amiga boots up, but since the 
drive has to be mounted before it 
can be read, there's no way to boot 
the Amiga from the hard disk. The 
performance of the hard disk, while 
not blindingly fast, was respectable. 
Amiga BASIC, which loaded in ten 
seconds from the floppy, came up 
in five from the disk, about as fast 
the Micro Forge hard disk for the 
Amiga. And this was a slow hard 
disk card (about 85 milliseconds ac- 
cess time) — faster ones are avail- 
able. Even without the speedup, 
though, the convenience of having 
all your system files at hand can't 
be beat. 

A Full-Speed PC 

The Amiga also adds small, but 



nice, enhancements to the PC side. 
The Amiga handles the Sidecar dis- 
play like any other Amiga task. The 
display can run in a window, with 
horizontal or vertical scroll bars, or 
in a full-screen borderless display 
that looks just like a PC. Since the 
Amiga is handling the display, you 
aren't limited to the 16 colors of the 
IBM monitor. A menu on the PC 
window allows you to select any- 
where from 2 to 1 6 colors for the PC 
display, and to choose those colors 
from any of the 4096 offered by the 
Amiga. Although two-color screens 
are updated the fastest, even the 
16-color screens seem to scroll as 
quickly as the standard PC screen. 
(All Sidecar operations checked out 
at full PC speed.) 

If you choose a four-color 
screen, the PC window appears on 
the Workbench screen, where it can 
overlap other Amiga task windows. 
With any other color resolution, the 
display appears on its own screen. 
The Amiga provides emulation of 
both the monochrome and color 
displays, though only one can be 
active at a time. In addition, you 
may open up multiple windows on 
the same display. This allows you 
to bring up part of a spreadsheet 
display, freeze it in one window, 
and look at another part of the 
spreadsheet in another window at 
the same time. Of course, putting 
the Sidecar display on the Amiga 
doesn't make the PC multitask — 
not even Microsoft can do that. 

And since both processors can 
communicate with one another 
through shared RAM, it's possible 
that in the future we'll see genuine 
hybrid programs that run on both 
processors simultaneously, or that 
use the Amiga for its great graphics 
display and the optional 8087 math 
coprocessor in the Sidecar for num- 
ber crunching. 



ivlorch 1987 COMPUTEI 87 




Personal Computing 



Donold B. Trivette 



Two Winners And A Loser 



The Print Shop by Braderbund Soft- 
ware is a nifty little program that 
lets you design greeting cards, 
signs, letterhead stationery, ban- 
ners, and almost anything else in- 
volving graphics. The software 
comes with a "how-to" booklet, al- 
though you won't really need it to 
produce attractive results. The 
package also contains a small quan- 
tity of bright yellow fan-fold paper 
and equally bright envelopes most 
suitable for making YIELD signs. 

I spent only 20 minutes putting 
together a handsome birthday card 
from the large assortment of canned 
borders, symbols, and fonts. More 
ambitious and artistically inclined 
users can create their own symbols 
and pictures. My card had a border 
of sea shells and the words "Happy 
Birthday" in an outlined Art Deco 
font superimposed over a penguin. 
It was attractive enough that I 
planned to send along a copy to be 
reproduced with this column. Only 
after I completed it did I realize that 
my letter-quality, formed-letter 
printer couldn't print graphics. If 
you have a dot-matrix printer that 
supports graphics, a PC or PCjr with 
128K, a double-sided disk, and $60, 
you've got all you need for The Print 
Shop. It's not desk-top publishing, 
but it is a winner. 

For Jr. Only 

Here's a winner for PCjr owners. 
The Junior Report is a national 
newsletter published monthly just 
for PCjr users. The issue I saw was 
18 pages long and had both a nice 
selection of letters to the editor as 
well as detailed reviews of pro- 
grams and hardware designed just 
for the PCjr. One reader wrote in 
and related how he bought a new 
printer, identical to the one IBM 
sold for $200, from a TV auction for 
just $37. A short article reviewed a 
memory-expansion product for the 
PCjr that fits inside the original case 



instead of in a sidecar. A year's 
subscription is S18 from The PCjr 
Club, P.O. Box 95067, Schaum- 
burg, IL 60195. 

Not So Delicious 

The ad is a real eye catcher: A 
wooden chopping board is arrayed 
with fresh vegetables, an IBM PC 
monitor in the background displays 
a tempting dish of shrimp on an 
elegant place setting. "Ah! Dinner 
at Eight," the ad promises, "A soft- 
ware collection offering instant ac- 
cess to the delectable recipes of the 
country's finest restaurants." The 
advertisement is a winner; unfortu- 
nately, the program is not. 

Dinner at Eight claims to be a 
database program for recipes — 
software to guide a cook to any of 
hundreds of dishes from outstand- 
ing restaurants. You begin by 
browsing through a list of basic 
food groups — vegetables, poultry, 
lamb, seafood — and then, once 
you've settled on a specific dish, the 
program is supposed to scale the 
proportions up or down to fit your 
needs and print out a shopping list 
as well as directions for the prepa- 
ration of the meal. In addition, it 
offers a way to add your own reci- 
pes to its files, although that is not a 
sensible option in my own case. 

The program is structured 
somewhat like a famous spread- 
sheet program — commands are dis- 
played across the top of the screen, 
and you select an item by moving 
the cursor and pressing the Enter 
key. But the implementation is so 
poor that I was completely lost. The 
first command in the list is EDI- 
TION. This is the command you 
must select in order to read the 
master recipe file; in other words, 
this is the equivalent of File Re- 
trieve. Since this command is 
usually used just once, it makes 
little sense for it to be in the first, 
the default, position. 



Although that's a minor an- 
noyance, Ditjuer at Eight has some 
major flaws. 1 finally figured out 
enough of the menu structure to 
select "Bay Shrimp in Sour 
Cream," but trying to adjust the 
recipe to serve two instead of four 
was needlessly cumbersome. Then 
I tried to print the ingredients and 
instructions, but for some reason 
the program refused to work with 
either my NEC 3550 printer or my 
Xerox 4045 laser printer. I can over- 
look incompatibility with the laser 
printer, which has some nonstan- 
dard commands, but cannot forgive 
a program that won't print on the 
NEC, which uses standard IBM/ 
Epson commands. Nor are the 
flaws limited to the program — the 
data is also questionable. The recipe 
did not tell me whether to cook the 
shrimp or mix them raw with the 
sour cream and other ingredients; it 
didn't even tell me whether to peel 
them or use them in the shells. The 
recipe, incidentally came from a 
good, but not nationally famous, 
restaurant in San Francisco. In fact, 
none of the restaurants I saw credit- 
ed in the program would be on a list 
of the nation's top ten establish- 
ments. 

The ad — "And may we sug- 
gest a companion wine with your 
meal?" — implies that the program 
includes a wine selection guide. 1 
hoped that it might recommend a 
half dozen suitable types and vin- 
tages. No, selecting the Wines com- 
mand displayed only a few screens 
of general information about various 
t)'pes of wines, but nothing specific 
for Bay Shrimp and Sour Cream. 

Dinner at Eight, by Rubicon 
Publishing, is a good idea marred 
by defective data, bad design, and 
worse programming. © 



COMPUTEI March 1987 



INSIGHT: Atari 



Bill Wilkinson 



Corrected File Conversions 



Well, this month marks a historic 
occasion for those of us at Opti- 
mized Systems Software. March 
1981 was the month we introduced 
our first Atari-oriented products; 
BASIC A+, EASMD, and 08/ A + 
(called CP/A until a lawyer for DRI 
objected — maybe we could have 
fought them if we had had more 
than $2.98 in our checking ac- 
count). We finished those products 
off in record time and presented 
them at the West Coast Computer 
Faire. We managed to sell 17 (yes, 
that is 3 less than 20) packages at 
about $120 each (that was cheap in 
those days), and we decided then 
and there we could stay in business 
for another month (maybe even 
two). 

Well, the months kept passing 
like that. OSS has never been a 
wildly successful company — sell- 
ing languages for a computer on 
which fewer than 10 percent of all 
owners actively program is not con- 
ducive to instant wealth — but we 
have always had some loyal follow- 
ers. As I have mentioned here 
before, I started writing this column 
because I saw some questions in 
COMPUTE! about Atari software in- 
ternals that I thought needed some 
answers. But I wouldn't have even 
gotten interested in reading COM- 
PUTE! if we hadn't started OSS. See? 
All things are related when you 
look deep enough. 

Unified We Stand 

Speaking of software internals and 
answers..,. In the recent issues of 
COMPUTE! there are a pair of pro- 
grams which purport to convert 
standard Atari binary object files 
into either strings ("Stringing Atari 
Machine Language," September 
1986) or DATA statements ("ML 
Write for Atari," January 1987). 
Both of these programs have a com- 
mon limitation which was not men- 
tioned in the articles accompanying 



them: You must use them only with 
single-segment binary files. How 
do you know if a particular binary 
file consists of only a single seg- 
ment? Glad you asked. 

The program which accompa- 
nies this article is a simple little 
utility that analyzes any standard 
Atari binary file, printing the first 
and last address of each segment as 
it goes. When the program asks for 
the complete file name, you should 
enter the name of a binary file, 
including the disk drive specifier 
and extension (for example, 
DhRAMDISK.COM). Watch the re- 
sultant screen display. If addresses 
for more than one file segment are 
displayed, then you may not use the 
programs described in those articles 
for this file. 

Exception: If the addresses are 
all contiguous (that is, if the starting 
address of a segment is exactly one 
more than the ending address of 
the prior segment and if this holds 
true for all segments), you can use 
this file if you unify it first, I dis- 
cussed segmented files in my April 
1986 column and presented a uni- 
fying program there. Unfortunate- 
ly, the program accompanying that 
article was misprinted, so you have 
to look in the article titled "Custom 
Characters for Atari SpeedScript" by 
Charles Brannon in the May 1986 
issue (pages 88-90) for a corrected 
version of the file unifier. 

If you are not comfortable with 
the hex addresses printed by the 
segment-checking program, you 
may view decimal addresses in- 
stead by replacing lines 110 through 
150 below with just this one line: 

110 PRINT "SEGMENT: ";START;" 
THROUGH ";QUIT 

And one last caution: Though 
not mentioned in the article, ma- 
chine language code placed in 
strings (as in the September 1986 
article) must be intrinsically relocat- 
able. Many of the routines floating 



around on BBSs and in user-group 
libraries are indeed relocatable, but 
don't rely on this always being so. 
Test these routines in strings (or any 
machine language routines, for that 
matter) only after you have made 
sure you have saved your program 
and after you have put a junk dis- 
kette in the drive. (If you have an 
Indus drive or other drive that you 
can protect from the front panel, 
setting the protection is another ad- 
equate safeguard.) 

Binary Fiie Segment Checi<er 

Fl 10 REM tttt BINARY FILE S 

EQMENT CHECKER ««* 
IG 20 DIM FILE* (20) , HEX* ( 16) 

: HEX*="01234567B'?ABCDE 

F" 
DE 30 SRflPHICS 
6140 PRINT "COMPLETE FILE N 

AME"; ! INPUT FILE* 
11K50 OPEN #1,4,0, FILE* 
06 60 TRAP 200:SET #i,LOW:GE 

T #1,HI 
KK 70 IF HI = 255 AND LaH = 2S5 

THEN BET #1,L0W:GET *1 

.HI 

START-LaW+256tHI 

TRAP 40000: BET #1,L0W: 

BET #1,HI 
QUIT=L0W+256»HI 
PRINT "FILE SEGMENT: 



Kl 80 
EL 90 

!B 100 

A(. 110 

JC 120 

NB 130 

EJ 140 

CD 1S0 

EK 160 

Dfl 170 
n 180 
DJ 190 
JF 200 

M 210 



SL 220 

PK 230 

IJ 240 
BE 250 

M: 26 

(JC 270 

EK 280 
HL 290 



HEX=STflRT: BDSUB 230 

PRINT " THROUBH "; 

HEX=QUIT: BOSUB 230 

PRINT 

FOR ftDDR=START TO QUI 

T 

GET #1,JUNK 

NEXT ADDR 

GOTO 60 

REM »** GET HERE ON E 

ND OF FILE «»« 

IF PEEK<195) 0136 THE 

N PRINT "UNEXPECTED E 

RROR # '■;PEEK(195) 

END 

REM *«« HEXPRINT SUBR 

OUTINE »»« 

DI V=4096 

FOR DI6IT=1 TO 4:TEMP 

=INT (HEX/DI V> 

PRINT HEX* (TEMP+1 , TEM 

P + 1) ; 

HEX=.HEX-DIV«TEMP:DIV = 

DIV/16 

NEXT DIGIT 

RETURN @ 



March 1987 COMPUni 89 



3-D Surfaces 
For Amiga 



Written entirely in Amiga BASIC, this 
graphically impressive program al- 
lows you to plot three-dimensional 
shapes on the screen in any color 
combination you like. By making 
small chtttiges, you can view the ob- 
ject from any vantage point or plot an 
entirely different graph. 



One of the most popular traditional 
applications for connputer graphics 
is to plot three-dimensional graphs 
on the screen. That description may 
sound dull, but the resulting shapes 
are often quite beautiful in their 
own right as well as educational. 
The Amiga's outstanding graphics 
capabilities and fast processing 
speed make it ideal for such 
activity. 

"3-D Surfaces for Amiga" pro- 
vides a convenient, powerful tool 
for anyone interested in creating 
such pictures. It draws 3-D graphs 
as mesh perspectives. That is, the 
shapes appear as rectangular grids 
that have been pushed up or down 
in various places to create a variety 
of different shapes (see photos). 
The program permits you to change 
many different aspects of the pic- 
ture, including the fineness of the 
mesh, screen resolution, observa- 
tion angle, low and high bounds of 



Martin Staley 



the function that creates the picture, 
and, of course, the function itself. 
Type in and save the program. 
Before you run it, open the BASIC 
output window to the entire size of 
the screen and make sure you are 
using the high-resolution (640 X 
400) screen. Since the program re- 
quires quite a bit of memory, it's 
best not to run any other programs 
while it's in operation. 

Using The Program 

The program begins by computing 
all the data it needs to plot the 
current function. This process can 
take a while, depending on the 
complexity of the shape. To inform 
you of its progress, the program 
prints a counter value on the 
screen. When the calculations are 
complete, the program draws the 
shape on the screen. 

Once the shape is finished, you 
can change any of the screen colors 
by moving the color sliders in the 
upper left comer of the screen with 
the mouse pointer. To move a slid- 
er, place the mouse pointer on the 
slider, hold down the left mouse 
button, then move the slider to the 
desired spot. 

You can stop the program if 
necessary by selecting the Quit op- 
tion from the Actions menu. This 
option automatically restores the 



original palette colors and closes the 
hi-res screen for your convenience. 

Creating New Shapes 

This program is designed to give 
you great flexibility in plotting your 
own 3-D pictures. Apart from color 
changes (see above), this is done by 
changing one or more of the param- 
eters defined at the beginning of the 
program. The best way to learn 
about these parameters is to experi- 
ment on your own. All of the con- 
trolling parameters are located 
immediately following the labels 
Parameters and Equation. If you're 
familiar with this type of activity, 
the comments in these lines may 
give you enough information to 
plot your own graphs. The remain- 
der of this article discusses in more 
detail the significance and use of 
these parameters. 

Change The Equation 

Each image created by this program 
is a two-dimensional representa- 
tion of an equation or mathematical 
function. It is the equation, more 
than any other factor, which con- 
trols the ultimate appearance of the 
graph. It's defined with the DEF FN 
statement in the line immediately 
after the label Equation. DEF FN, as 
you may know, creates a user- 
defined function for later use in the 



90 COMPirrei March 1987 



program in which it appears. To 
change the function, simply replace 
the portion on the right side of the 
equal sign ( = ). The result can be an 
entirely new shape. Here are some 
interesting functions to try; 

(x'2+5*y'2)*EXP(l-x*2-y*2)/2-SIM 
{3*x*2y"2)/(x"2+y"2)-« 

-x*3/l0-{SIN(l-x"2-y*2)+COS(l-x~ 
2-y~2))/2* 

SIH(3*x)*SIN(3*y)/5+.7*SIN(2*x*2 
+3*y*2)/(x*2+y"2)-4 

COS(3*x)+2*SIN(x''2+y*2)/{x*2+y*2 
)-x/2< 

.3*tSIN(x"2+y)+COS(y~2+x))* 

(SIN(4*x'"2+y"2)+2*SIN(x*y))/{4*x 
'•2-i-y-2)-4 

SINC3*x)+SIN(3*y)-« 

In each case, the new function 
definition should be substituted for 
the portion of the DEF FN state- 
ment that lies on the right side of 
the equal sign. For instance, to use 
the last example definition, the line 
following the label Ecjuation should 
read as follows: 

DEF FNz(x,y) = SIN(3*x)+SIN(3*y) 



The Plot Thickens 

The first two variables in the Pa- 
rameters section, m and n, control 
the number of grid rectangles in the 
X (horizontal) and y (vertical) direc- 
tions. Simply put, these values con- 
trol the fineness of the rectangular 
mesh of which the graph is com- 
posed. If you increase the value of 
m and/or «, the plot appears 
thicker and more finely detailed. 
The finer the resolution, the better 
the graph looks. However, more 
detailed plots take longer to create. 
Conversely, smaller values make 
the graph look coarser and less sub- 
stantial. The coarser the mesh, the 
less time it takes to complete the 
necessary calculations. Setting both 
values to 31 is a reasonable tradeoff 
between time and accuracy. 

Since the program utilizes two 
2-dimensional arrays based on m 
and J!, the values of these two vari- 
ables are limited by the amount of 
available memory. On a 512K 
Amiga, I've used values as high as 
75. At this degree of accuracy, the 
program requires about ten minutes 
for calculations; however, the re- 
sults are worth it. 



The values of m and n need not 
be equal. However, they should be 
set to an odd number. Both of these 
points are discussed in more detail 
below. 




These photos illustrate some of the 
many three-dimensional plots you can 
create with "3-D Surfaces for Amiga." 

Resolution 

The next variable, res, controls the 
screen resolution. If res equals 1, 
the program draws the graph on 
Amiga BASIC'S default 640 X 200 
output window. Before you run the 
program in this mode, be sure to 
stretch the window to the full 
screen size, since the image will fill 
nearly all the available space. If you 
set res to 2, the program opens a 
custom output window in 640 X 
400 resolution before it draws. The 
memory requirements of this win- 
dow probably make it unusable on a 
256K Amiga. Graphs drawn in the 
lower resolution always look coarser 
than those drawn in the highest res- | 



olution, particularly when the mesh 
size is small. However, even lower 
resolution screens look quite good. 

Accuracy 

The variable gl stands for graph 
type. It controls the accuracy of the 
plot by selecting one of two draw- 
ing algorithms (formulas). The first 
algorithm draws a good estimate of 
the shape. The second algorithm 
draws the shape in actual, exact 
perspective from any direction, an- 
gle, and distance. Each method has 
advantages and disadvantages. The 
estimate method is less complex, 
more reliable, and faster. The exact 
perspective method is slower and 
requires many more intensive cal- 
culations (which can lead to error 
messages on rare occasions). How- 
ever, drawing in exact perspective 
allows you to view a shape from 
different observation points. The 
estimate method causes some inac- 
curacy in the vertical scale, but ex- 
act perspective uses correct 
proportions, taking into account the 
fact that pixels (dots) on the Amiga 
screen are square, not round. 

Aspect And IHeight 

Two of the parameter variables are 
used only with the estimate draw- 
ing method (see preceding section). 
The variable asp controls the appar- 
ent x-y ratio of the graph as it ap- 
pears on the screen, regardless of 
the bounds you specify. Aspects 
that are too large or too small (say, 
larger than four or smaller than 
one-fourth) have the side effect of 
downgrading the quality of the esti- 
mate (the graph may look slightly 
distorted). The variable h controls 
the height factor, which affects the 
graph's vertical appearance. In gen- 
eral, height factors of less than 100 
tend to make the apparent observa- 
tion point higher in the z direction; 
as a result, graphs look a bit stub- 
bier than expected. Larger height 
factors have the opposite effect 
(lower observation points and taller 
graphs). By enlarging the height 
factor, you can emphasize a graph's 
vertical qualities. 

Observation Angle 
And Distance 

The graph's perspective is con- 
trolled by three parameter vari- 
ables: theta, phi, and d. The variable 



Morch 1987 COMPUTE! 91 



theta equals the observation angle 
from the x-y axis moving counter- 
clockwise in the x-y plane as 
viewed from the positive z direc- 
tion. The variable phi is the obser- 
vation angle with respect to the x-y 
plane. This variable is set up for 
both angles to be in degrees; if you 
would rather use radians, remove 
the conversions in the second pro- 
gram line under the label Equations. 
Any observation angle is possible if 
you keep theta in the range — 180 to 
180 and keep phi in the range —90 
to 90. Other values may be used; 
however, it's usually best to keep 
the angle more than about 1/10 
degree away from any positive or 
negative multiple of 90 degrees (in- 
cluding 0) to avoid overflow errors 
in the computation. Such extreme 
observation angles aren't very in- 
teresting, anyway, since you tend to 
lose most of the graph's three- 
dimensional quality. 

The variable d controls the dis- 
tance of the observation point — in 
the direction of the direction an- 
gles — from the graph's center (the 
point whose coordinates are the av- 
erage X, y, and z coordinates of all 
the computed function values). The 
only formal restriction for d is that it 
cannot be zero. However, it should 
be large enough to place you a rea- 
sonable distance from the shape. 
Observing the graph from an ex- 
tremely close location is a bit like 
viewing the Mona Lisa by putting 
your eye one millimeter away from 
the canvas. In addition, extremely 
small values for d can actually lo- 
cate the observation point "inside" 
the graph. The program assumes 
that all graph points are within a 
180-degree field of view while 
looking toward the center. If d is so 
close to the center that not all of the 
graph's points are within this view, 
the program's output is garbage. It's 
best to make d large enough so that 
the observation point is beyond the 
bounds of the function as specified 
by the four parameters discussed in 
the next section. Incidentally, speci- 
fying a very large distance won't 
make the graph look significantly 
smaller. As the distance becomes 
larger, perspective qualities such as 
the presence of a vanishing point 
become less pronounced. To avoid 
wasting screen resolution, the pro- 
gram always stretches the perspec- 



tive until either the horizontal or 
vertical dimension becomes too 
large to fit on the screen. 

Bounds 

The next four parameter variables 
set the low and high bounds of the 
graph in the x and y dimensions. 
This simply means that the four 
sides of the graph will be along 
those edges. 

Equation Notes 

The most important parameter, of 
course, is the equation contained in 
the DEF FN statement. When defin- 
ing new functions, keep in mind 
that the computer can't perform 
some operations, such as dividing 
by zero or taking the square root of 
a negative number. However, func- 
tions which have what's known as 
a limiting value on the interval can 
usually be plotted. There are many 
rational functions whose numera- 
tors become zero at the same time 
their denominators reach zero; and 
the ratio can be finite. But the com- 
puter doesn't know this and still 
generates a Division by zero error 
unless it just misses the coordinate 
in question. 

To compute function values, 
the program increments between 
the low and high x bounds, and 
between the low and high y 
bounds, in step sizes such that a 
total of «r + 1 different x values and 
n + l different y values are eventu- 
ally put in the equation. If the incre- 
ment sizes and the low and high 
bounds are such that the offending 
point is skipped, everything should 
work correctly. Odd values for m 
and n seem to work best, but prob- 
lems are still rare when even values 
are used. 

For instance, the function Z = 
SIN(X)/X + S1N(Y)/Y should have 
a value of two when X and Y both 
equal zero; but the computer will 
generate an error message at that 
point. If you try this function with 
the X and y bounds both set be- 
tween -10 and 10, the computer 
tries to evaluate the function at co- 
ordinate (0,0) if m and n are 20, but 
not if m and n are 21. The computer 
simply happens to skip coordinate 
(0,0) if it increments between -10 
and 10 in step sizes needed to cre- 
ate a 21 X 21 grid. But it lands on 
the point and tries to compute a 



corresponding function value if the 
grid is 20 X 20, 

For some equations, the 
CLEAR,60000 statement in the sec- 
ond program line may cause an Out 
of memory error. You may be able to 
avoid this error by reducing the 
value in the CLEAR statement. 
That change reduces the amount of 
space available for BASIC arrays 
and variables, which may make it 
necessary to decrease the value of m 
and/or n as well. 

3-D Surfaces For Amiga 

For Instructions on entering this program, 
please refer to "COMPUTErs Guide to Typing 
in Programs" in ttils issue of compute!, 

CLEAR, 60000«.:DEFIMT i,j* 

pi=3 . 14 15927 #: e=2 .7182818#* 

Parameters: * 

m=31:n=31 

= in*n'« 

res=l 

n: 1=640*200, 

gt=l 

e: l=estiniate, 

asp=l 



' mesh size 

' resolutio 
2=640*400* 

' graph typ 
2=real ■* 

' y/x ratio 



of graph (only for gt=l)* 

h=150 ' height fa 

ctor (only for gt=l)-* 

theta=30 ; phi^20 ' observati 

on angles in degrees (only for g 

t=2)-* 

d=100 ' distance 

from graph center (only for g 

t=2)-« 

loxB-3 :hix=3 ' low & big 

h bounds in x direction-* 

loy=-3 :hiy=3 ' low & hig 

h bounds in y direction* 

Equation: ■* 

DEF FNz(x,y)=SIN(x'2+3*y*2)/(x"2 

■»-y~2) + (x*2+5*y*2)*EXP(l-x~2-y'2) 

/2 * 

theta=theta*pi/l80:phi=phi*pi/18 

' conversion: degrees to radi 

ans-* 

a=d* COS( phi }*COS( theta)* 

b=d*COS ( phi ) *SIN ( theta ) * 

c=d*SIN(phi) * 

GOSUH Check* 

DIM xc(in+l ,n+l) ,yc(m+l ,n+l) * 

tx=(hix-lox)/ra:ty=(hiy-loy) /n* 

PRINT:PRINT "computing values... 

"* 

LOCATE 4, 7: PRINT m+1 * 

IF gt=l THEN GOSUB Estimate : ELSE 

GOSUB True* 

Draw: * 

IF res=2 THEN SCREEN 1,640,400,2 

,4:WIND0W 2 , "graph" , , 1 5 , 1 : ELSE C 

LS * 

DIM v(15),rgb(3,2)< 

p=0* 

Re: -* 

FOR c=0 TO 3 * 

READ r,g,b: PALETTE c , r , g , b* 

rgb(c,0)=r :rgbCc,l)=g:rgb[c,2)=b 

* 

NEXT c * 

DATA 0,0, a, .14, .14, .14,0,0,0,0,0 

,1* 

COLOR 2,3* 

FOR xadfx TO dtx STEP sx* 

FOR ydfy TO dty STEP sy* 

xl=xc(x,y) :x2=xc(x,y+l) :x3=xc(x+ 

l,y+l) :x4=xc(x+l,y)* 



92 COMPUTil March 1987 



yl=yc(x,y) :y2=yc( x, y+l) :y3=yc(x+ 

l,y+l ) :y4=yc( x+l,y)'« 

AREA (xl,yl):AREA (x2,y2);AREA ( 

x3,y3):AREA ( x4,y4 ) : AREAFILL* 

LINE (xl,yl}-(x2,y2>,3:LINE (x2, 

y2)-(x3,y3),3-* 

LINE (x3,y3)-(x4,y4) ,3:LINE ( X4 , 

y4)-(xl,yl),3 -* 

NEXT y* 

NEXT X ■♦ 

Colors: * 

FOR n=0 TO IS : v( n)=IH-7 . 54*n : NEX 

T n-« 

col = 0:xl = ll:x2=ll:x3=U* 

IF res=l THEN WINDOW 3, "colors", 

(0,0)-(130,50) ,18,-1* 

IF res=2 THEN WINDOW 3, "colors", 

(0,0)-(l30,50) ,18,l-« 

WINDOW OUTPUT 3-* 

PRINT "R":PRINT "G":PRINT "a":PR 

INT: PRINT "C"-t 

LINE (0,0)-(130,0) :LINE (0,8)-(l 

30,8)< 

HNS {0,16)-C130,16) :LINE (0,24) 

-(130,24)-t 

LINE {10,0)-(10,50):LINE (11,25) 

-C4a,S0),0,bf-« 

LINE (40,25)-(70,50),l,bf iLINE ( 

70,25)-(100,50) ,2,bf-t 

LINE (100,25)-(130,50) ,3,bf :LINE 

(ll,l)-(19,7),3,bf < 

LINE (11,9)-(19,15) ,3,bf :LINE (1 

l,17)-(19,23),3,bf * 

i=20:LINE (20,32)-(30,42),l,bf-s 

MENU 1,0,1, "Action" :MENU 1,1,1," 

Quit": MENU ON-* 

Loop : * 

IF MENU(0)=1 AND MENU(1)=1 THEN* 

WINDOW CLOSE 3: MENU RESET: SCREEN 

CLOSE 1:ST0P* 

END IF* 

X=H0USE(1) :y-'H0USE(2) :IF MOUSE(0 

)>=0 THEN cl=l:c2=l:c3=l:GOTO Lo 

op* 

IF x>10 AND x<131 THEN IF y>24 A 

ND y<51 THEN Getcol:ELSE GOTO Ch 

eckl* 

GOTO Loop* 

Checkl :* 

arg=. 1260504*x-l .3865S1:IF y<l O 

R y>7 OR cl=0 THEN Check2* 

LINE (ll,l)-(130,7),0,bf :LINE (v 

(arg) , 1 )-( v(arg)+B, 7) ,3,bf :xl=v( 

arg) * 

rgb( col, )=arg/l 5 : PALETTE col,rg 

b(col ,0) ,rgb(col, 1 ) , rgb( col, 2)* 

cl=l :c2a0 :c3=0 :GOTO Loop* 

Check2;* 

IF y<9 OR y>15 OR c2=0 THEN Chec 

k3* 

LINE (11,9)-(130,15) ,0,bf :LINE ( 

v(arg),9)-(v{arg)+8,15) ,3,bf :x2= 

v( arg)* 

rgb(col,l)=arg/15iPALETTE col,rg 

b( col , ) , rgb( coi , 1 ) , rgb ( col , 2 ) * 

cl=0 :c2=l:c3=0:GOTO Loop* 

Check3 :* 

IF y<17 OR y>23 OR c3=0 THEN Loo 

P* 

LINE (11,17)-(130,23) ,0,bf :LINE 

(v{arg),17)-(v(arg)+8,23),3,bf :x 

3=v( arg)* 

rgb( col, 2) =arg/l5 : PALETTE col.rg 

b(col,0),rgb(col,l) , rgb (col, 2)* 

cl=0:c2<=0 :c3=l :GOTO Loop* 

Getcol :* 

LINE (i,32)-(i+10,42),col,bf* 

IF x<40 THEN i=20 :LINE (1,32)- 

(30,42),l,bf :col=0:GOTO Nst* 

IF x<70 THEN i=50 :LINE (i,32)- 

(60,42),2,bf :col=l: GOTO Nst* 

IF x<100 THEN i=80 :LINE (i,32)- 

(90,42),3,bf :go1=2:G0T0 Nst* 

i=110:LINE (i,32)-(120,42) ,0,bf : 

col=3* 



Nst: * 

LINE (ll,l)-(130,23),0,bf :LINE ( 

10,3)-(130,S) :LINE (10,16)-(130, 

16)* 

c=l* 

FOR n=0 TO 2:tl=lIl*rgb(col,n)+l 

1* 

LINE (tl,c)-(tl+8,C+6) ,3,bf :c=c+ 

a* 

NEXT n* 

GOTO Loop* 

Check: * 

ra=INT(in) :n=INT(n)* 

asp=ABS(asp) :h=ABS(h)* 

IF res<>l AND res<>2 THEN res=l* 

IF res=l THEN ht=186 :hht=93 * 

IF res=2 THEN ht=386 :hht=193* 

IF lox>hix THEN SWAP lox,hix< 

IF loy>hiy THEN SWAP loy,hiy* 

dfx=l :dtx=m:sx=l:dfy=l :dty=n :sy= 

i* 

IF gt<>2 THEN gt=l* 

IF res<>2 THEN res=l* 

IF gt=2 THEN* 

IF a<0 THEN df x=ra: dtx=l ; sx=-l* 

IF b<0 THEN d£y=n:dty=l:sy=-l< 

END IF* 

RETURN * 

Estimate :* 

ml=310/ra!m2=160/ra:nl=310/n:n2=16 

0/n:rd=180/pi* 

x=240/SQR( l+asp*2) :y=240*asp/SQR 

(l+asp*2)* 

spx=3 10+ , 8886207* ( x-y ) : spy=hht- . 

4586429*(x+y)* 

Xl=1.777 241*x/m:x2=1.7 77241*y/n: 

yl=.917 285e*x/ra:y2=.9172858*y/n 

* 

i=0:x=lox-tx* 

WHILE i<in+l* 

i=i+l :LOCATE 5,7:PRINT i;* 

x=x+tx : j=0:y=loy-ty* 

WHILE j<n+l* 

j=j+l* 

y=y+ty * 

xc(i, j )=( spx+x2* j-xl*i)* 

yc{i, j)=spy+y2* j+yl*i-h*FNz(x,y) 

* 

IF yc(i,j)<smin THEN sinin=yc(i,j 

)•* 

IF yc(i, j)>smax THEN smax=yc(i,j 

)* 

WEND* 

WEND* 

IF sinax<ht AND smin>0 THEN RETUR 

N* 

avg= ( smax+smin ) /2 : smax=3max-avg : 

smin=smin-avg : mult=ht/ ( sniax-gmin 

)* 

FOR x=l TO m+1* 

FOR y=l TO n+l< 

yc(x,y)=rault*(yc(x,y)- avg ) +hh t* 

NEXT y* 

NEXT X * 

RETURN* 

True:* 

DEF FNc(a,b,c,x,y,z)=(x*(b*Cb-y) 

+c*(c-z) )+(x-a)*{b*y+c*z))/d< 

DEF FNang ( x , y , z ) = ( px* x+py *y+pz * z 

)/(dp*SQR(x~2+y"2+z"2)) * 

px=FNc{a,b,c,0,0,10) :py=FNc(b,a, 

c, 0,0, 10) :pii=FNc(c,ta, a, 10,0,0)* 

dp=SQR(px*2+py"2+pz*2)* 

i=0 :x=lox-tx* 

WHILE i<m+l* 

1=1+1 : LOCATE 5 , 7 : PRINT i* 

x=x+tx I j=0!y=loy-ty* 

WHILE j<n+l* 

j=j+l* 

y=y+ty * 

xc(i, j)=FNzCx,y) :sum=sum+xc(i, j) 

* 

WEND* 

WEND* 

avg=sum/( (ra+1 )* (n+1 ) ) :ym=loy-ty- 



( loy+hiy)/2* 

i=0:x=lox-tx-(lox+hix)/2* 

WHILE itm+1* 

i=i+l : LOCATE 6, 7: PRINT i* 

x=x+tx :j=0:y=yin* 

WHILE j<n+l* 

j = j + l :y=y+ty:z=xc( i, j )-avg < 

d=a * ( a-x ) +b* ( b-y ) +c* ( c-z ) * 

xc=FNc(a,b, c, x,y , z)* 

yc=FNc(b,a,c,y,x,z)* 

zc=FNc(c,b,a, z,y , x)* 

rad=SQR( xc''2+yc''2+zc*2)* 

s=l* 

IF SGN(a) <>SGN(yc*pz-zc*py) THEN 

* 

s=-l* 

ELSEIF SGN(b) <>SGN(zc*px-xc*p2) 

THEN * 

s=-l* 

ELSEIF SGN(c)<>SGN(xc*py-yc*px) 

THEN * 

END IF* 

cs= FNang ( xc, yc,zc) :sn=SOR( 1 .0000 

l-cs*2)* 

xc( i, j)=s*rad*sn:yc(i, j)=-rad*cs 

* 

IF xc(i, j)>xniax THEN xraax=xc(i,j 

)* 

IF xc(i,j)<xmin THKN xmin=xe(i,j 

)* 

IF yc(i,j)>ymax THEN ymax=yc(i,j 

)* 

IF yc(i,j)<ymin THEN ymin=yc{i,j 

)* 

WEND* 

WEND* 

ax=( xRiax+xmin) /2 :ay=(ymax+yrain)/ 

2* 

IF res=l THEN* 
hzy=93* 

IF ( {yiinax-yrain)/{xmax-xniin) ) > (6. 

75/10,25) THEN* 

my=168/ (ymax-ymin) :mx=168/(ymax- 
ymin)*2. 200899* 
ELSE* 

my=G02/ { xmax-xmin ) /2 . 200899 smx=6 
02/ (xmax-xmin)* 
END IF* 
ELSE * 
hzy=193* 

IF ( (ymax-ymin) /(xmax-xmin) )> (6. 
875/10.25) THEN* 

ray=368/ (ymax-ymin) :mx=368/( ymax- 
ymin) *1 .092089* 
ELSE* 

my=602/( xmax-xmin) /I .092089 :mx=6 
02/(xmax-xmin)* 
END IF* 
END IF* 

FOR x=l TO m+1* 
FOR y=l TO n+1* 
xc( X, y)=315+mx* ( xc( x,y)-ax)* 
yc ( X , y ) =hzy+my* ( yc ( x , y ) -ay ) * 
NEXT y* 
NEXT X * 
RETURN* 



COMPUTE! 

TOLL FREE 

Subscription 
Order Line 

1-800-247-5470 

rnIA 1-800-532-1272 



March 1987 COMPUTE! 93 



Fixing Atari 
Revision-B BASIC 



This article includes a fast, conven- 
ient way to fix the bugs in Revision B 
of Atari BASIC. The program works 
on all Atari 800X1 computers which 
have Revision-B BASIC, and on 600X1 
computers with memory expansion to 
64K. A disk drive is required. 



As many people are aware, the ver- 
sion of Atari BASIC known as Revi- 
sion B — the version built into most 
Atari 600XL and 800XL comput- 
ers — contains several serious bugs. 
The later, debugged version of 
Atari BASIC is known as Revision 
C. To find out which version you 
have, type 
PRINT PEEK(43234) 

and press RETURN. If the com- 
puter prints 96, you have Revision 
B, the bad version of BASIC. If it 
prints 234, you have Revision C, so 
no fixes are required. 

The programs included in this 
article eliminate all of the bugs in 
Revision-B BASIC. Enter and save 
Program 1; then run it. The pro- 
gram creates an AUTORUN.SYS 
file on disk. {Before you run this 
program, make sure that the disk in 
the drive does not already contain 
an AUTORUN.SYS file that you 
want to save. The AUTORUN.SYS 
file created by Program 1 will over- 
write any existing AUTORUN.SYS 
file already on the disk.) When you 
boot the computer with a disk con- 
taining this file, the program first 
checks to see whether the XL's 
built-in BASIC is enabled. If an ex- 
ternal cartridge is present, or if no 



Barry Hart 



cartridge is present, the program 
does nothing at all. This feature 
prevents crashes when other car- 
tridges are in use. If built-in BASIC 
is enabled, the program copies 
BASIC from ROM to underlying 
(normally unused) RAM, then 
makes the changes needed to fix all 
of the Revision-B bugs. 

This program should cause no 
problems with the vast majority of 
BASIC programs. However, it may 
conflict with programs that modify 
CASINI (memory locations 2-3) or 
the microprocessor's stack at loca- 
tions 256-511. Very few programs 
modify those areas. A program 
might also crash the system if it 
POBCEs new values into the car- 
tridge space at 40960-49151, since 
that is where the RAM copy of 
BASIC resides. 

When you're using a RAM- 
based version of BASIC, it is advis- 
able to lower the value in the 
RAMTOP pointer {location 106). 
Some graphics commands may at- 
tempt to alter memory above RAM- 
TOP, which would disrupt the 
RAM version of BASIC. You can 
protect BASIC by using one of the 
following statements near the be- 
ginning of your program: 

POKE 106, PEEK(106)-4: GRAPHIC n 
(for graphic modes 0-6) 

POKE 106, PEEKa06)-16: GRAPHIC n 

(for graphic modes 7-11) 

In either case, n is the number of the 
mode you'll be using. 

A Patch For DOS 

Program 2 is not necessary to use 
the special AUTORUN.SYS file. 



but it can be handy if you use DOS 
2.0 or 2.5. Since the AUTO- 
RUN.SYS file works by switching 
out the ROM version of BASIC, you 
cannot normally return to the RAM 
version of BASIC from the DOS 
menu using option B (RUN CAR- 
TRIDGE). Selecting option B from 
the DOS menu generates an error 
message (NO CARTRIDGE). Pro- 
gram 2 makes a minor alternation 
to the DUP.SYS file which allows 
DOS option B to work normally 
with the file created by Program 1. 
Before you run Program 2, insert a 
disk containing the DOS 2.0 or 2.5 
DUP.SYS file and the AUTO- 
RUN.SYS file created by Program 
1. Do not use Program 2 to change 
the DUP.SYS file on any disk which 
doesn't contain the AUTO- 
RUN.SYS file created by Program 
1. Use Program 2 only on copies of 
the DUP.SYS file, not on the ver- 
sion of DUP.SYS on your original 
DOS disk. If you ever delete the 
AUTORUN.SYS file that fixes 
BASIC, you'll need to replace the 
patched DUP.SYS file with a copy 
of the original version. 

If you don't use Program 2, 
then you must press RESET or use 
DOS option M (RUN AT AD- 
DRESS) to run the patched BASIC 
in RAM at location AOOO (40960). 

Note that Program 1 is intend- 
ed only for 600XL and 800XL mod- 
el Atari computers with Revision-B 
BASIC built in. Memory expansion 
to 64K is required to use the pro- 
gram on the 600XL; otherwise there 
will be no RAM under ROM for the 
program to use. The program does 



94 COMPUTE! March 1987 



not work at all on the Atari 400, 
800, or 1200XL, all of which use 
BASIC in a cartridge and do not 
include RAM under ROM. Although 
Program 1 will work on XE models, 
it is unnecessary, since all XE com- 
puters come with Revision-C 
BASIC built in. In addition, some of 
the last XLs produced use Revision- 
C BASIC instead of Revision B. 

While these programs solve 
the Revision-B bugs, it is possible to 
obtain a cartridge containing Revi- 
sicn-C BASIC, which would elimi- 
nate the need for the AUTO- 
RUN. SYS file. For information, 
write to: 

Atari Customer Relations 
P. O. Box 61657 
Sunnyvale, CA 9408S 



For instructions on entering these progfoms, 
please refer to "COMPUTEi's Guide 1o Typing 
in Programs" in this issue of COMPUTEl. 

Program 1: AUTORUN.SYS 
Filemaker 



FH 10 


OPEN #1 , S,0, "DsftUTaRUN 




.SYS": FOR 1=1 TD 110!R 




EflD J:PUT #l,JsNEXT I 


8J 20 


DATfi 255,255,0, 1,97, 1, 




173, 1,211,9,2, 141, 1,21 




1 ,76,64,21, 165,6,74, 14 




4, SI, 173,250,3,208,76, 




168, 133,214, 169, 160 


fD 30 


DATA 133,215, 169,32, 13 




3,216, 173, 1,211,9,2, 17 




0,202,202, 142, 1,211, 17 




7,214,232,232, 142, 1,21 




1 , 14 5,2 14, 200,208,239 


At 40 


DATA 230,215,198,216,2 




08,233, 169,234, 141,223 




, 166, 141,226, 168, 169,2 




40, 14 1 ,224, 16B, 169, 17, 




141,225, 168, 140,41 


CH 50 


DATA 187,165,12,141,9, 




1, 165, 13, 141, 10, 1, 132, 




12,200, 132, 13,96,226,2 




,227,2, 11,1 


Program 2: DUP.SYS Patcher 


KF 10 


XIO 36,«1 ,0,0, "DiDUP.S 




YS-sDPEN #1, 12, 0, "D: DU 




P. SYS" 


KA 20 


FOR X=l TO 2026:GET «1 




.YsNEXT X:FQR X=l TO 5 




SsREAD Y:PUT «I,Y:NEXT 

X 
CLOSE «1 : XIQ 35, #1,0,0 


PL 30 




, "Ds DUP, BYS" 


LK50 


DATA 164,6,136,240,35, 




172,2 53, 191, 169, 170, 14 




1 ,253, 191,205,253, 191, 




208,22,74, 141,253, 191, 




205,25 3, 191,208, 13, 140 


BC &0 


DATA 253,191,169,63,16 




2, 39,32, 181,49, 76, 182, 




3 2, 173,252, 191,208,241 




,173, 253, 191 , 240,236,2 




34,234,234,234,234 @ 



Custom 
Characters 
For Atari XL 

AndXE 

S. M. Bough 



This program demonstrates a short, 
elegant method of creating custom 
characters on Atari XL and XE com- 
puters (except for the 1200XL). 



Many computer users have use for 
an alternate character set. Custom 
characters give any program a pol- 
ished, professional look and they 
are an absolute necessity for foreign 
language applications. They can 
also be used to create graphics in 
games and educational programs. 
This program demonstrates an effi- 
cient technique for creating custom 
characters on the newer XL and XE 
Atari computers. 

Type in the program and save 
a copy; then run it. After a short 
delay, the computer clears the 
screen and prints all the printable 
characters. To switch from normal 
characters to a set of Greek and 
Hebrew characters, press CTRL-4. 
Uppercase characters are changed 
to Greek letters and lowercase char- 
acters become Hebrew characters 
(the order is as logical as possible: A 
becomes alpha or aleph, F becomes 



phi or pe, and so on). Press CTRL-4 
again to switch back to the normal 
characters. 

Alternate Character Sets 

A character set is simply a collec- 
tion of patterns that define the 
shape of each character. The Atari's 
normal character set is contained in 
ROM (Read Only Memory). To cre- 
ate custom characters, you must put 
a new character set somewhere in 
memory, then tell the computer to 
use the new patterns in place of the 
old ones. The first order of busi- 
ness, then, is to decide where to put 
the new character set. 

On older 400 and 800 Atari 
computers, the memory area from 
locations 49152-53247 ($C000- 
$CFFF) is unused. On XL and XE 
models, this area is used by the 
operating system. Part of this mem- 
ory, the zone from 52224-53247 
($CC00-$CFFF), contains an inter- 
national character set which you 
can swdtch on with the statement 
POKE 756,204. 

The international set is useful 
for certain purposes, but not if you 
want something like a complete set 
of foreign language characters. Ide- 
ally, you could just POKE your own 



March 1987 COMPUTB 95 



character set into locations 52224- 
53247 and perform tlie POKE to 
switch to the new set. On XL and 
XE computers, however, this area is 
ROM which you can't change with 
POKES. 

The answer is suggested in Ap- 
pendix 12 of Mapping the Atari, by 
Jan Chadwick. The program copies 
the operating system from ROM 
into RAM and turns off the ROM so 
that the computer "sees" the un- 
derlying RAM. Once this is done, 
we simply POKE the new character 
set into the area formerly occupied 
by the international characters. An 
advantage of this technique is that 
the new characters don't decrease 
the amount of memory available 
for your own programming. 

Turning ROM into RAM per- 
mits all sorts of customizing. There 
is actually room for four new char- 
acter sets if you use the ROM space 
ordinarily used for graphics charac- 
ters. Of course, you can also replace 
the Greek and Hebrew definitions 
with characters of your own. Map- 
ping the Atari explains how to cre- 
ate new character definitions. 

To switch character sets under 
program control, use POKE 756,204. 
This program uses a little trick to let 
you do the same thing by pressing 
CTRL-4 when in immediate mode. 
Evidently, Atari used parts of the 
older 1200XL operating system in 
the operating system for the newer 
XL and XE computers. The XL/XE 
keyboard scanning routine looks 
for function keys that exist only on 
the 1200XL. One of the 1200XL's 
function keys is used to switch 
character sets. The POKE in line 
110 simply substitutes the CTRL-4 
key combination for that function 
key. Once this has been done, the 
computer automatically toggles be- 
tween the two character sets when 
you press CTRL-4, just as it would 
if you pressed the function key on a 
1200XL. 

Custom Characters For Atari 
XL And XE 

For instructions on entering this program, 
please refer to ■'COMPUTEI's Guide to Typing 
In Programs" elsewhere in this issus- 

FB 10 REM fllt»rn»tB ctiaracte 

r sets 
P620 BRflPHlCS 2+16:? #6;" 

lb SPACES>ROM/RAM"! ? # 

6;"t3 SPACES>CHARftCTER 

S" 



EC 30 7 #6;" "i? #65" CONVE 

RTINQ ROM. . . " 
EJ 40 RESTORE 1000 
JK 50 FOR L-1536 TO 1635:REA 

D DsPOKE L.DsNEXT L 
BC &0 U'USR(1536) 
KH 70 ? #6; " ": ? «6; " 

iZ SPACES>CHANQINQ 3ET 
S. . . " 
Hf B0 7 #6j " " 
B6 90 FOR L"524a8 TQ 52695s R 

EAD DiPOKE L.DsNEXT L 
DE 100 FOR L = 52992 TO 53207: 
READ DsPOKE L.DiNEXT 
L 
111110 POKE 64661,152 
K 120 FOR J«32 TO 252 
PF 130 IF <J<1Z5 OR J>127) A 
ND (J<155 OR J>159) T 
HEN PRINT CHR»CJ) 5 
Id 140 NEXT J 

H6 150 PRINT SPRINT :PRINT " 
PRESS CTRL-4 TO SWITC 
H CHARACTER SET" 
HO 1^0 REH MACHINE LANGUAGE 

DATA 
FE 1000 DATA 169,0,133,203,1 
33,205, 169, 192, 133, 2 
04, 169,64, 133, 206, 16 
0,0, 177,203, 145 
110 1010 DATA 205,200,208,249 
,230,206, 230, 204,240 
, 12, 165, 204, 201 , 208, 
208,237, 169,216, 133, 
204 
U 1020 DATA 20s, 231 ,S, 120, 1 
73, 14,212, 72, 169,0, 1 
41, 14,212, 173, 1,211, 
41 
08 1030 DATA 254,141,1,211,1 
69, 192, 133,206, 169,6 
4, 133,204, 177, 203 
a 1040 DATA 145,205,200,208 
,249,230, 204,230, 206 
,240, 12, 165,206, 201, 
208,208,237, 169,216, 
133_».2ai> 
PM 1050 DATA 208,231,104,141 

, 14,212,40, 104,96 
EH 1998 REM GREEK DATA 
DK2000 DATA 0,0,60,108,108, 

108,54,0 
An2010 DATA 0,60,108,126,10 

2, J IB, 124,96 
IH2020 DATA 0,0,99,182,24,2 

4, 108, 199 
DP 2030 DATA 0,28,48,28,102, 

102, 60,0 
DF 2040 DATA 0,0,60,96,124,9 

6, 60, 
6HZ050 DATA 24,24,126,219,2 

19, 126,24, 24 
OK 2060 DATA 0,0,51,94,12,24 

,48,48 
JC 2070 DATA 0,0,252,102,102 

, 102, 102,6 
LI(20B0 DATA 0,0,48,48,48,52 

,28,0 
JH 2090 DATA 0,60,102,126,10 

2, 102, 60, 
III2100 DATA 0,0,102,108,120 

, 108, 102,0 
EL2110 DATA 0,192,96,48,24, 

44, 103,0 
ni 2120 DATA 0,0,102,102.102 

, 102, 127, 96 
11(2130 DATA 0,0,230,102,102 

, 124, 112,0 
CK2140 DATA 0,0,60,102,102, 

102, 60, 
162150 DATA 0,0,127,182,54, 
54, 54, 



ftD2160 DATA 0,0,24,24,0,0,0 

,0 
KK2170 DATA 0,0,124,102,102 

, 124, 96, 96 
EI2180 DATA 0,0,63,108,108, 

108,56, 
ftl(2t90 DATA 0,0,126,152,24, 

24, 24, 
6J 2200 DATA 0,0,238,102,102 

, 108,56, 
EB2210 DATA 0,24,219,90,90, 

90, 60, 24 
1<H2220 DATA 0,0,102,195,219 

,219, 126,0 
FI 2230 DATA 48,28,48,30,48, 

112, 62,6 
NH2240 DATA 0,0,60,102,56,1 

2,6,28 
JE 2250 DATA 96,30,112,96,96 

,56, 12, 56 
U 2260 DATA 0,0,24,24,0,0,0 

,0 
JK299B REM HEBREW DATA 
Be 3000 DATA 0,102,52,24,44, 

38,99,0 
HK3010 DATA 0,126,6,6,6,6,1 

27,0 
OK 3020 DATA 0,254,102,102,1 

02, 102, 102, 
N« 3030 DATA 0,127,6,12,12,1 

2,12,0 
BK3040 DATA 0,124,82,66,66, 

36, 6 0,0 
HP 3050 DATA 0,238,102,54,30 

, 12, 36,96 
*B3060 DATA 0,60,12,12,12,2 

2, 115,0 
JI 3070 DATA 0,126,6,102,102 

, 102, 102, 
PH 3080 DATA 0,126,102,102,1 

02, 102, 126,0 
BB 3090 DATA 0,60,12,24,24,2 

4,24, 24 
KR3100 DATA 0,126,6,6,6,6,1 

26, 
113110 DATA 192,64,126,126, 

6,4, 24,24 
i*3120 DATA 0,96,62,70,134, 

134, 158, 
I1II3130 DATA 0,60,12,12,12,1 

2, 60,0 
EL3140 DATA 0,126,38,66,66, 

102,60,0 
BK3150 DATA 0,126,38,118,6, 

6, 126, 
LE3160 DATA 0,126,6,102,108 

, 120, 96,96 
Cfl3170 DATA 0,126,6,6,6,6,6 

,0 
EO31S0 DATA 0,214,82,82,82, 

126, 60,0 
HL3190 DATA 0,126,38,38,38, 

102, 102,0 
U 3200 DATA 0,126,38,118,6, 

6,6,6 
M3210 DATA 0,119,18,22,12, 

6, 126,0 
ni: 3220 DATA 0,60,12,12,12,1 

2,12,0 
DH 3230 DATA 0,119,50,22,28, 

12, 12, 12 
» 3240 DATA 0,60,12,24,0,0, 

0, 
1:0 3250 DATA 0,60,8,24,24,24 

,24,0 @ 



96 COMPUTEI March 1987 



Applecoder 



Are you concerned about file security? 
This Applesoft BASIC utility allows 
you to encode any secjuential text file 
in a way that makes it almost impossi- 
ble for someone to crack. 



"Applecoder" is an Applesoft 
BASIC program which encodes any 
Apple sequenrial text file using a 
key supplied by you. This allows 
you to create securely encoded ver- 
sions of text files which you can 
keep on disk, knowing that you are 
the only one able to make the file 
readable again. Or, if you share the 
key with a friend, you can both 
exchange encoded files on disks or 
over a modem. Using Applecoder 
makes it nearly impossible to de- 
code a text file without knowing the 
exact steps taken to encode the file. 
With multiple encoding and other 
techniques, you can make it even 
more difficult for anyone else to 
decipher the contents of the file. 

Using Applecoder 

Type in Applecoder (Program 1), 
save a copy to disk, and then run it. 
Applecoder begins by asking 
whether you want to encode or de- 
code a file. Press E to encode or D to 
decode. Then you must enter the 
name of the file you wish to con- 
vert. If you're not sure of the file's 
name, press the question mark key 



Adam Levin 



(?) to display a disk catalog. Once 
you have entered the name of the 
input file, you are prompted to en- 
ter the disk slot and drive number 
where the file is located. You must 
then repeat this procedure for the 
output file. To direct the output to 
the screen rather than to a disk file, 
enter SCR as the output filename. 
Screen output allows you to pre- 
view the results immediately with- 
out having to write the file to disk 
and view it later. Among other 
things, this is handy for reading a 
decoded letter. 

Now you must supply a key to 
encode or decode the file. Of 
course, if you are decoding a file, 
you must supply the same key that 
was used to encode it previously. 
The key can be any rational number 
in the range 1 * IQ-^s to 1 * lO^^. 
(The last number is a one followed 
by 38 zeros.) If you like, the key 
value can be entered in scientific 
notation. In that notation, the same 
numeric range is expressed as 
lE-38 to lE + 38. 

This large numeric range gives 
you a multitude of keys from which 
to choose. It is suggested that you 
pick a key value that is easy for you 
to remember, but hard for others to 
guess. 

Once you have entered the 
key, Applecoder prompts you to 
insert the disk in the drive. Press 
Return to begin the conversion. If 
you specified a disk filename for the 



conversion, Applecoder displays 
the line which it is currently con- 
verting. If you have chosen SCR for 
screen output, the program directs 
all converted output to the monitor. 
Because an encoded output file 
is the same size as the original file, 
Applecoder cannot handle a file that 
occupies more than one-half of a 
disk on a single-drive system. If you 
have two drives, Applecoder can 
handle any file that fits on a disk. 

How Random Is Random? 

Applecoder relies on the fact that 
the RND function returns numbers 
that appear random, but are actual- 
ly created with a predictable mathe- 
matical formula, A better name for 
such numbers is pseudorandom 
numbers. Whenever you supply a 
negative value with RND, that 
number is used to seed the random 
number generator routine. Subse- 
quent uses of RND with a positive 
value will yield predictable num- 
bers based on the value of the origi- 
nal seed. 

The key which you supply to 
Applecoder is used to seed the ran- 
dom number generator. The pro- 
gram then reads the file one 
character at a time; for each non- 
control character in the file, Apple- 
coder gets a pseudorandom number 
with the RND function and adds it 
to the character's ASCII value. This 
creates an output file which is the 
same length as the input file, but 



March 1987 COMPUTEI 97 



where each noncontrol character is 
changed in a seemingly random 

fashion. The control characters 
(0-31 and 128-159) are not altered, 
thus the file can still be handled by 
word processing or telecommunica- 
tions programs. 

The best way to learn how this 
works is to go ahead and encode a 
text file with the SCR option, to 
display it on the screen. Note that 
any given word, though it may ap- 
pear many times in the original file, 
will be different every time it ap- 
pears in the encoded file. Since all 
Apple II computers use the same 
RND function, an encoded text file 
created with Applecoder can be de- 
coded by any other Apple II run- 
ning the same program — assuming, 
of course, that the other Apple user 
has the correct key. 

Advanced Applecoding 

An encoded file of this type is ex- 
tremely difficult to break, since you 
would have to run a program like 
Applecoder repeatedly and enter 
different keys until you happened 
upon one that yielded text instead 
of random garbage. 

If you're still not convinced, 
enter and run Program 2, "File- 
maker," and try to decode the file 
by guessing the correct key value. 
Program 2 creates a short text file 
named STRANGE. After you create 
the STRANGE file, run Applecoder 
with the SCR option and try enter- 
ing different keys. When you're 
convinced that it's not easy to dis- 
cover a key through random guess- 
ing, try the value 340.897. 

To make a file even more se^ 
cure, you can doubly encode it. For 
instance, say that you wish to en- 
code a file named ABCD and pro- 
duce a final output file named 
WXYZ. The first step is to encode it 
as usual, giving the output file a 
name like TEMP, since it is only a 
temporary, intermediate file. Then 
the TEMP file is encoded, giving 
the output file the name WXYZ. 
When that step is complete, the 
TEMP file can be deleted. 

At this point the WXYZ file can 
be decoded only by someone who 
has both keys. In multiple decoding, 
it makes no difference which key 
you use first. For instance, say that 
the file was encoded with the keys 
119 and 1206.41, in that order. The 



file is decoded correctly if you de- 
code with 119 and then decode 
with 1206,41, or if you use the 
reverse order. This rule applies no 
matter how many times the file has 
been encoded. 

Multiple encoding makes a file 
virtually impossible to crack by ran- 
dom guessing. Imagine yourself 
trying to crack the first stage of a 
triply encoded file. After the first 
attempt at decoding, there is no 
way to know whether the results 
are correct, since the product of the 
first decoding is another encoded 
file. And you have no rational way 
to tell how many decodings may be 
necessary. 

Another useful method is to 
back-code the file. In this case, you 
select the decode (D) option for an 
unencoded file. Then, to recover 
the original text you must use the 
encode (E) option. A would-be 
snooper has no idea that it's neces- 
sary to encode — rather than de- 
code — the file in order to restore 
the original contents. 

Applecoder works only with 
sequential text files. However, any 
Applesoft or Integer BASIC program 
that can be executed with EXEC is 
actually a text file which can be 
manipulated with Applecoder. 

Of course, it's important to re- 
member which key or keys you 
used to encode each file in the first 
place. And while Applecoder 
makes a file useless to others, it 
doesn't prevent them from deleting 
or garbling the file. To be absolute- 
ly safe, you may want to keep an 
unmodified copy of the original file 
in some secure location. 

Modifications 

Here are a few modifications which 
will make the program more 
convenient for some users. If you 
have only one disk drive, change 
lines 170, 190, and 210 as shown 
here: 

170 PRINT D» + '-CATflLOB": RET 

URN 
1<?0 IS = b:lD ~ 1 
210 05 = 6:0D = 1 

This modification assumes that 
your drive is in slot 6 and drive 1 . If 
your system is different, change the 
6 and 1 in lines 190 and 210 
accordingly. 

Line 170 contains the only 
CATALOG command in the pro- 



gram; if you have ProDOS and 
want to change it to CAT, this is the 
place. 

Apple uses the null character, 
CHR$(0), to indicate the end of data 
when reading and writing text files. 
Applecoder, like most programs 
that handle text files, knows it has 
reached the end of a file when the 
null character appears. Text files 
normally contain a null only as the 
last character in the file. You should 
avoid placing a null character — or 
CHR$(128), which is equivalent to 
a null — in text files. If the encoded 
version of a file is unexpectedly 
shorter than the original, check to 
make sure that the original doesn't 
contain a hidden null. 



For Instructions on entering these programs, 
please refer 1o "COMPUTEI's Guide to Typing 
In Programs" elsewhere in this issue. 



Program 1: Applecoder 

B! 100 RTN ° 13: REM ASCII VALUE 
QF CHARACTER MEAN INS 'EN 
D DF LINE' 

D3 110 D* = CHR« C4):BL« = CHR» 
(7) : REM DISK ACCESS : BE 
LL CHAR. 

12 120 ZR = 0!PF = .3:WN = 1:EI 
= BsTW =- 20! TT = 32! NF - 
95: DH ■ 1001 OTE » IZSiSX 
= 160: TFF «= 2551 REH THE 
USE OF THESE VARIABL'^ SP 
EEDS UP THE ' ENCODE/DECOD 
E' LOOP. 

il 130 KY = 0: ONERR 60TD 590 

F2 140 TEXT : HOME : HTAB (13>s 
PRINT "APPLECODER": POKE 
34, 1 

IF 150 REM «» BET USER INPUT »» 

*1 160 ED = FRE <0) : HOME : PRIN 
T : HTAB <B) : PRINT "<E>N 
CODE OR <D>ECODE ";! BET 
A«S PRINT A«: ON A* < > " 
E" AND A* < > "D" GOTO 16 
0:ED = 1:ED = ED - 2 « (A 
» •' "D") I 0OTQ 180 

EC 170 INPUT "SLOT #, DRIVE « FD 
R CATALOG: ";3»,DR«: ON S 
* < "1" OR S» > "7" OR DR 
» < "1" OR DR» > "2" GOTO 
170! PRINT D* + " CATALOG 
,3" + S» + ",D" + DR»J RE 
TURN 

m 180 PRINT : PRINT "NAME OF IN 
PUT FILE: '7' FOR CATALD 
0.": INPUT IN«; DN IN* = 
"7" BDSUB 170s IF LEN <IN 
») > 15 OR LEFT* (IN«,1) 
< "A" THEN 180 

BB 190 PRINT "SLOT«, DRIVE* OF " 
jIN»5": "i! INPUT 9«,DR»! 

DN S» < "1" OR S» > "7" 
OR DR* < "1" OR DR* > "2" 
GOTO 190: IS - VAL (S») : I 
D = VAL (DR*) 

98 200 PRINT : PRINT "NAME OF OU 

TPUT FILE: ": PRINT "'SCR 

' WILL SEND OUTPUT TO SCR 

EEN ONLY.": INPUT DT*: ON 

OT* = "?" B05UB 170: DN 



98 COMPUTEI March 1987 



LEN (0T«) 
DT«, 1) < 
QT» = "SCR 



> 15 OR LEFT» < 
A" GOTO 200! IF 



THEN PRINT " 
SOTO 



OUTPUT TO SCREEN. 
230 

16 2ia PRINT "SLOT*, DRIVE# OF " 
;OT»s"s ";: INPUT S»,DR»i 

ON S* < "1" OR 3» > "7" 
OR DR» < "1" OR DR* > "2" 
GOTO 210; OS = VftL CS»):0 
D = VflL (DR») 

Fi 220 IF IN* = 0T» ftND IS = OS 
AND ID = OD THEN PRINT : 
PRINT BL»"FILENflMES MUST 
D I FFER I": PRINT "DI3A3TRD 
US RESULTS OCCUR DTHERWIS 
E."t GOTO 200 

EB 230 PRINT i INPUT "ENTER KEY 
FDR CODE: ";A*!KY - VAL ( 
A*) ; IF KY - THEN PRINT 

"RANGE FOR KEY IS 1E-3B 
< — > 1E+3B.": QDTD 230 

M 240 L = 0! HOME : PRINT "MAKE 
CERTAIN THAT THE DISKETT 
E WITH"; PRINT ; PRINT IN 
*!" IS IN SLOT #";IS;", D 
RIVE #";IDs PRINT : IF OT 
* < > "SCR" THEN PRINT "A 
ND THE DISKETTE FOR": PRI 
NT ! PRINT 0T»;" IS IN SL 
OT #";09j", DRIVE #";0D 

B7 250 RD = 1:XYZ = RND ( - ABS 
(KY))! PRINT : PRINT "HIT 

<RETURN> TO CODE, <ESC> 
TO RESTART ";: BET A»; ON 

A* < > CHR» (13) AND ft* 
< > CHR« (27) BDTO 250! 
N A« ■• CHR* (27) BOTO 160 
: HOME s PRINT 

K 260 PRINT 8 PRINT : PRINT : H 
TAB (4) ; IF ED = 1 THEN P 
RINT "EN"; 

« 270 IF ED = - 1 THEN PRINT "D 

E"; 

17 280 PRINT "CODINS. PLEASE WA 
IT FDR 'BEEP'";X = FRE ( 
PEEK ( - 16368) ) ; REM CLE 
AR KEYBOARD STROBE. 
REM »* ENCODE/DECODE «* 
S = IS;DR = ID; PRINT D* 
+ "DPEN" + IN» + ",S"iIS; 
",D";ID 

IF DT« = "SCR" THEN HOME 
: GOTO 330 

S = OS:DR = OD: PRINT D« 
+ "OPEN" + 0T» + ",S";DS; 
",D";DD: PRINT D* + "CLOB 
E" + DT«: PRINT D* + "DEL 
ETE" + 0T»; PRINT D» + "0 
PEN" + OTisHT = EI + EI * 
PF 

E3 330 0* = ""; IF OT* < > "SCR" 
THEN VTAB Eli HTflB (HT) ; 
L = L + WN: PRINT " LINE 
tt"jL 

21 340 FOR R = 2R TO TFF: REM S 
ET ft MAXIMUM OF 256 CHARA 
CTERS PER INPUT LINE 

Fi 350 S = IS:DR = ID: PRINT D» 
+ "READ" + IN* 

41 360 BET A«: PRINT : PRINT D»: 
REM USE 'SET' RATHER TH 
AN ' INPUT' SO -ALL- CHARA 
CTERS CAN BE CAPTURED 

2? 370 A = ASC (AS): IF A = RTN 
THEN 510: REM END DP LIN 
E SIGNALLED BY 'RETURN' 1 
NPUT 

FD 380 IF (A < TT! OR (A > OTE - 
WN AND A < SX) THEN 490! 
REM PASS ALL NDN-ALPHfl 
NUMERIC INPUT 

ID 390 B = A + ED * INT ( RND (R 
0) * NF) ! IF RD = ZR THEN 



EG 


290 


37 


300 


74 


310 


11 


320 



FA 400 
B6 410 

7C 420 

IB 430 
42 440 

«6 450 

«1 460 



M 470 



RD = WN: REM CREATE A N 
EW ASCII VALUE USING THE 
OLD VALUE AND A RANDOM # 
FROM TO NF 

■■ OTE THEN 440 

' OTE THEN B = B - 



W 



M 



IF A 
IF B 

DTE + TT 
IF B < TT THEN B = NF 
N + B 
GOTO 460 

IF B > TFF THEN B = B 
TFF + WN) + 3X 
IF B < SX THEN B = NF 
N + S 

IF B =. RTN THEN RD - 2R: 
GOTO 490; REM CAN'T USE 
A 'RETURN' IN OUTPUT STRI 
NG 
IF (B < TT! OR (B > = OTE 

AND B < SX) THEN RD = ZR 
1 BOTO 490! REM DON'T AL 
TER NON-ALPHANUMERIC OUTP 
UT 



2B 480 


ft = B 


43 490 


D* = D« + CHR* (A) 


FC 500 


NEXT 


U 510 


IF OT* = "SCR" THEN 530 


85 520 


S = OS;DR = OD: PRINT D* 




+ "WRITE" + OT* 


»4 530 


PRINT 0* 


FS 540 


PRINT D» 


45 550 


GOTO 330: REM KEEP GETTI 



S UNTIL THERE'S AN END-DF 
-DATA ERROR, WHICH WILL B 
E CONSIDERED THE END OF T 
HE FILE 
48 S60 PRINT "CONVERSION COMPLET 
E. "; PRINT "WOULD YOU LIK 
E TO DO ANOTHER ?": PRINT 
"<Y>es OR <N>0 "; : GET 
A»: PRINT A«! ON A* < > 
"Y" AND A* < > "N" GOTO 5 
60! IF A* = "Y" THEN RUN 
E4 570 TEXT : PRINT : PRINT "APP 

LECODER DONE.": END 

" 530 REM *t ERROR HANDLING t* 

it 590 ECN = PEEK t222):ELN - PE 

EK (218) + 256 < PEEK (21 

9) 

FE 600 PRINT : PRINT D* + "CLOSE 

" + IN»s PRINT 
FI 610 PRINT D» + "CLOSE" + OT*: 

PRINT : PRINT BL*} 
Dl 620 ON ECN = 5 GOTO 560: REM 
'END OF FILE' HAS BEEN R 
E ACHED. 
I! 630 PRINT "ERROR! HIT <RETURN 
> TO CONTINUE."; :X - PEEK 
( - 16368): SET A*; PRIN 
T A*; ! IF A* < > CHR* (13 
) THEN HTAB ( 1 ) : GOTO 630 
ED 640 PRINT 

3! 650 IF ECN = 4 THEN PRINT "TH 
E DISKETTE IN SLOT #";S;" 
, DRIVE #";DR: PRINT "IS 
WRITE PROTECTED. PLEASE 
REMOVE THE"; PRINT "WRITE 
PROTECT TAB.": GOSUB 790 
: SOTO 240 
E5 660 IF ECN < > 3 THEN 690 
« 670 PRINT "INPUT/OUTPUT ERROR 
. ": PRINT "CHECK DISK DR 
IVE #"sDR;" IN SLOT #";S} 

53 680 PRINT : PRINT "CODING MUS 
T BE RESTARTED.": BOSUD 7 
90: GOTO 240 

D5 690 IF ECN = 9 THEN PRINT "TH 
E DISKETTE IN SLOT #";S;" 
, DRIVE #";DR: PRINT "IS 
FULL. PLEASE INSERT A DI 
SKETTE"! PRINT "WITH MORE 



SPACE AND RESTART.- 
UB 790: GOTO 240 



SOS 



J! 700 IF ECN < > 10 THEN 740 
41 710 PRINT "THE FILE ";DT«;", 
IS LOCKED."! PRINT "UNLOC 
K IT NOW?"! PRINT "<Y>ES 
OR <N>D ";: GET AS: PRINT 
A*: ON A* < > "Y" AND A* 
< > "N" BOTO 710 
3E 720 IF A* = "Y" THEN PRINT D* 
+ "UNLOCK" + OT* + ",S"; 
DS!",D";OD: PRINT "FILE H 
AS BEEN UNLOCKED. " 
fl4 730 eOSUB 790: GOTO 240 
9C 740 IF ECN = 11 THEN PRINT "E 
RROR IN FILE NAME."! PRIN 
T "FILE NAME MUST CONFORM 
TO YOUR DOS.": EOSUB 790 
! BOTO 180 
41 750 IF ECN = 13 THEN PRINT "F 
ILE-TYPE MISMATCH."; PRIN 
T "ONLY TEXT FILES CAN BE 
CODED."! PRINT "PLEASE C 
HECK YOUR FILE-TYPE BY": 
PRINT "LOOKING AT THE ' CA 
TALDS'"! BOSUB 790! GOTO 
1B0 
4B 760 IF ECN = 255 THEN PRINT " 
YOU TYPED A <CTRL-C>,"« P 
RINT "IF THIS WAS DONE DU 
RING CDDINS,"; PRINT "THE 
<CTRL~C> MAY HAVE BEEN S 
ENT": PRINT "TO THE DUTPU 
T FILE.": PRINT "REDO IF 
THIS IS THE CASE.": SOSUB 
790: GOTO 240 
DB 770 PRINT "ERROR NUMBER! " ; EC 
N: PRINT "IN LINE NUMBER: 
";ELN: PRINT "PLEASE REF 
ER TO YOUR PROGRAMMING"! 
PRINT "MANUAL FOR A FULL 
DESCRIPTION,": PRINT "THl 
S SCREEN WILL REMAIN DISP 
LAYEO"; PRINT "UNTIL YOU 
HIT <RESeT>. ":R = 
BB 780 ON R > GOTO 780: TEXT : 
PRINT : PRINT "APPLECODE 
R DONE."!R = 1: GOTO 780 
CI 790 PRINT : PRINT "HIT <RETUR 
N> TO RESTART, <ESC> TO E 
ND ";: GET At: PRINT A*; 
ON A* < > CHR* (13) AND A 
» < > CHR* (27) GOTO 790: 
IF A* = CHR* (13) THEN R 
ETURN 
4» 800 PRINT : PRINT "VERIFY: EX 
IT APPLECODER": PRINT "<Y 
>ES OR <N>0 ";: GET A*: P 
RINT A»; : ON A* < > "Y" A 
ND A* < > "N" GOTO 800: 
N A* = "N" GOTO 790: TEXT 

: PRINT : PRINT : PRINT 
"APPLECODER DONE."; END 



Program 2: Filemaker 

n B0 D* = CHR* (4) : REM DISK C 

DMMAND PREFIX 
57 90 N* = "STRANGE"! PRINT D* + 
"DPEN" + N*: PRINT D* + " 
WRITE" + NS: REM CREATE TH 
E TEXT FILE 'STRANGE' AND 
PREPARE TO WRITE TO IT. 
7<l 100 PRINT "5L+>AYF&4S;": REM 
THIS IS THE PHRASE WHICH 
APPLECODER WILL DECODE. C 
AN YOU GUESS WHAT IT SAYS 
NOW? 
E2 110 PRINT D* + "CLOSE" + N* 

li 120 PRINT + N* + "'" + " 

HAS BEEN CREATED."! PRINT 
"CREATE. PHRASE DONE." 
9F 130 END 



March 1967 COMPUTEI 99 



128 File Viewer 



Tin's Commodore 128 utility packs a 
double punch. It can print the con- 
tents of any disk file or disassemble 
any machine language program di- 
rectly from disk. Neither operation 
disturbs the program currently in 
memory. A disk drive is required. 



Have you ever wanted to know the 
contents of a mysterious file in the 
disk directory, or needed to look at 
another file during a programming 
session? All too often, getting that 
information requires a lot of saving, 
loading, and listing. "128 File 
Viewer" allows you to display the 
contents of any program (PRG) or 
sequential (SEQ) disk file on the 
screen without harming the pro- 
gram in memory. It can also disas- 
semble any machine language 
program directly from disk — again, 
without disturbing the current pro- 
gram. Since it adds a new command 
to the Commodore 128's BASIC, 
this program is very easy to use. 

Because File Viewer is written 
entirely in machine language, it 
must be typed in using the "MLX" 
machine language entry program 
found elsewhere in this issue. Be 
sure to read and understand the 
instructions for using MLX before 
you begin entering the data for File 
Viewer. When you run MLX, you'll 
be asked for a starting address and 
an ending address for the data 
you'll be entering. Here are the ad- 
dresses for File Viewer: 



Jeffrey D, Parfch 



starting address; 
Ending address: 



1350 

17E7 



When you finish entering the 
data, be sure to save a copy to disk 
before you leave MLX. Once you 
have a completed copy of File 
Viewer on disk, you can activate it 
with a command of the form: 

BOOT 'TILE vmWER",Ddrive,Vdevke 

Of course, you should replace 
FILE VIEWER in this statement 
with the filename you used when 
saving the data with MLX. If your 
disk drive is device 8, the normal 
device number for Commodore 
drives, you can omit everything 
after the closing quotation mark 
(just use BOOT "FILE VIEWER"). 
The first optional parameter is used 
to specify the drive number for 
dual-drive systems with drive 1 in 
addidon to drive 0. (Commodore 
1541 and 1571 drives are always 
drive 0.) The second parameter is 
used to specify a device number 
other than 8. For instance, BOOT 
"FILE VIEWER",D0,U9 boots the 
program from a disk in a drive ad- 
dressed as device 9. 

When the familiar READY 
prompt reappears. File Viewer has 
been installed and is ready to use. 
(Note that pressing the reset switch 
deactivates File Viewer.) This pro- 
gram works as an extension of the 
Commodore 128's BASIC, so it's as 
easy to use as any other BASIC 
statement. Here is the general 
syntax: 

VIE W "filename, type",Ddr)ve, Vdevice 



Again, the last two parameters 
are not needed if you are using a 
single 1541 or 1571 disk drive ad- 
dressed as device 8. 

The type parameter is also op- 
tional in most cases, since File 
Viewer ordinarily determines for it- 
self whether the file is a sequential 
or program file. If necessary, how- 
ever, you can specify the type by 
including an S for sequential files or 
a P for program files. For instance, 
the statement VIEW "SAMPLE,S" 
displays the contents of the sequen- 
tial file SAMPLE, while VIEW 
"5AMPLE,P" displays the contents 
of a program file of the same name. 

File Viewer ordinarily reads 
and displays the entire file. You can 
slow the display by pressing the 
Commodore key or pause it com- 
pletely by pressing NO SCROLL. 
Press STOP if you wish to termi- 
nate the display before you reach 
the end of the file. 

Disassembly 

To aid machine language program- 
mers, File Viewer also includes a 
disassembly option. Here's the syn- 
tax to use: 

VIEW "filenameM" 

The M stands for machine lan- 
guage. It's not a Commodore file 
type, but simply a signal to File 
Viewer that you wish to disassem- 
ble the file rather than print it to the 
screen. When you choose this op- 
tion. File Viewer reads the file from 
disk and disassembles it to the 
screen in standard 6502 assembler 



100 COMPirrei Morch 1987 



format. Just as with the display op- 
tion, you can slow the disassembly 
with the Commodore key, pause it 
with NO SCROLL, or cut it off by 
pressing STOP. 

Redirecting Output 

In most cases you'll want to look at 
a file on the screen. However, File 
Viewer also lets you divert the nor- 
mal screen output to a printer or 
other peripheral device. This option 
is most useful for machine language 
disassemblies, since it allows you to 
create a hardcopy printout of the 
program which can be studied at 
leisure. However, you can also use 
it as a quick way to print a text file 
without loading it into memory. 

Diverting output requires that 
you open a logical file to the desired 
device. For instance, say that you 
want to send the contents of a file to 
the printer. The statement OPEN 
1,4 opens logical file 1 to the printer 
(which is usually device 4). Once 
the logical file is open, you must tell 
File Viewer where to send its out- 
put. This is done by adding the 
logical file number to the VIEW 
statement: 

VIEW# file number," filename,type", 
Ddrive, Vdevke 

The logical file number must match 
the one you used when you opened 
the logical file, and must be in the 
range 1-127. As with normal for- 
mat for the statement, the type, 
drive number, and device number 
parameters are optional. For ex- 
ample, if you open a file to the 
printer with OPEN 1,4, this state- 
ment makes a hardcopy printout of 
the file SAMPLE from a disk in the 
drive addressed as device 8: 
VIEW#1, "SAMPLE" 

In special cases, you may wish 
to divert output to a disk file, or 
even to a modem via the RS-232 
interface. File Viewer isn't picky 
about where it sends output, as 
long as you have properly opened a 
logical file to the device. The Com- 
modore 128 System Guide explains 
the syntax needed to open a file to 
disk or R5-232 interface. 

Special Concerns 

The VIEW statement works only in 
direct mode; you should not at- 
tempt to add it to a program. VIEW 
does not accept string or numeric 



variables in place of its parameters 
(you can't use a statement like F$ = 
"SAMPLE": VIEW F$). 

The file display mode of File 
Viewer is intended primarily for 
looking at text files — that is, fOes 
that consist of printable character 
codes. It is possible to view other 
types of files such as tokenized 
BASIC programs, but the display 
may be difficult or impossible to 
read in such cases. For instance, if 
the file contains values equivalent to 
control-code characters, displaying 
the file may clear the screen, change 
the printing color, and so forth. If 
you try to print a hardcopy of such a 
file, some of the values may be inter- 
preted as spurious printer control 
codes, causing strange behavior 
such as unwanted form feeds or a 
change in printing mode. Similarly, 
disassembling a file that doesn't 
contain a machine language pro- 
gram produces meaningless results, 
but does no real harm. 

The machine language for File 
Viewer occupies memory locations 
4944-6114 ($1350-$17E2). If you 
disturb the contents of this area 
while File Viewer is active, the 
computer will probably lock up. 
The program also uses locations 
4864-4937 ($1300-$1349) and 250- 
254 ($FA-$FE) for temporary stor- 
age. You may use these locations 
for your own purposes; however, 
every VIEW statement will over- 
write the contents of these areas. 

File Viewer also maintains a 
six-byte bank-switching routine be- 
ginning at location 2048 ($0800) in 
both banks and 1. This is neces- 
sary because some BASIC errors 
may occur while the system is oper- 
ating in bank 1. In bank 0, this area 
is at the bottom of the BASIC run- 
time stack, where it isn't likely to be 
disturbed unless you run a program 
that uses a very large number of 
nested GOSUBs or FOR-NEXT 
loops. To accommodate this routine 
in bank 1, File Viewer bumps the 
start of variables up to address 2054 
($0806) when you first BOOT the 
program, thereby protecting the 
bank 1 copy of the switching rou- 
tine from being destroyed by the 
system. This results in a slight re- 
duction of the amount of space 
available for scalar variables, but 
should have no noticeable effect on 
the operation of BASIC. 



128 File Viewer 

Please refer to the "MLX" article In this issue 
before entering the following program. 

.1.350:20 97 13 20 FA 5.1. 78 A9 88 
13 58i6F 8D 1.4 03 A9 .13 SD 15 16 
1360:03 58 A9 56 8D 00 0A A9 E2 
-1368:13 8D 01 0A 4C 03 40 A0 CB 
.1370:06 83 30 IB B9 00 08 D9 2B 
1378:09 13 F0 F5 20 97 13 BA 06 
1380 :A9 00 9D 01 01 A9 13 9D Bl 
1388:07 01 A9 91 9D 06 01 4C 14 
1390:65 FA A2 10 4C 29 14 A0 4D 
1398:06 A9 08 8D 01 03 85 FB 21 
13A0:85 30 A9 00 8D 00 03 85 02 
13A8:FA 84 2F A9 EF 8D 27 03 F4 
13B0:A9 79 8D 26 03 88 A9 FA A6 
13B8:8D B9 02 A2 01 B9 C9 13 14 
13C0:91 FA 20 77 FF 88 10 F3 20 
13C8:60 SD 03 FF 4C CF 13 20 CA 
13D0:51 16 E0 0B D0 53 A0 FF 07 
13D8:A2 04 A5 3E 85 FB A5 3D 8E 
13E0:38 E9 04 85 FA B0 02 C6 DB 
13E8:FB C8 CA 30 09 B9 36 14 4B 
13F0;D1 FA F0 F5 D0 IC 24 7F FA 
13F8:30 21 A0 00 C6 FA 30 3A 50 
1400 :B1 FA C9 20 F0 F4 C9 3A 24 
1408:00 08 F0 2E A2 0E 2C A2 E3 
1410:17 20 A2 0B 20 A2 09 2C FD 
1418 :A2 04 2C A2 22 2G A2 08 51 
1420 :2C A2 05 2C A2 IE 2C A2 F2 
1428:80 86 FC 20 A3 17 20 97 25 
1430:13 A6 FC 40 3F 4D 56 49 15 
1438:45 57 20 51 16 20 86 03 33 
1440 :C9 23 D0 32 20 46 17 90 2C 
1448:06 C9 2C F0 0E D0 C3 29 DE 
1450 ;0F 20 27 17 20 80 03 D0 38 
1458 :EE F0 B7 E6 3D AS FC F0 05 
1460 :AB 30 A9 20 59 FF 90 04 91 
1468 :A2 03 D0 C7 85 FE E0 04 27 
1470:90 A3 A2 00 86 FC A6 98 2C 
1478:E0 0A 90 04 A2 01 D0 B3 54 
1480:20 CC FF 20 87 16 C9 2C 42 
1488 :F0 09 A2 3F 86 FB D0 IC 95 
1490 :4D 50 53 C8 A2 02 Bl 3D 28 
1498:DD 90 14 F0 06 CA 10 F6 D7 
14A0:4C 12 14 E6 3D E6 3D 88 EC 
14A8:85 FB Bl 3D 20 B4 16 20 BC 
14B0:90 03 F0 07 C9 22 D0 E8 Dl 
14B8i20 D4 16 A5 FC D0 04 A9 20 
14C0:08 85 FC A0 02 98 20 59 04 
14C8:FF B0 04 AS 08 10 F6 85 22 
14D0:FD 85 05 20 53 17 A5 FE 3D 
14D8:F0 0A A9 17 8D 27 03 A9 5B 
14E0:B0 8D 26 03 20 DB 17 A4 FC 
14E8:FB C0 53 F0 0F C0 50 F0 C5 
14F0:21 00 40 D0 03 4C A8 15 40 
14F8:C9 01 F0 16 20 D2 FF 8A 9C 
1500:20 D2 FF 20 CF FF 24 90 48 
1508:08 20 D2 FF 68 20 6E 16 4F 
1510 :D0 Fl A0 20 A9 6A 85 FA 32 
1518rA9 51 85 FB Bl FA 99 00 38 
1520:13 88 10 F8 A9 05 8D IB IF 
1528:13 ce B9 CF 17 99 21 13 B6 
1530 :C8 C0 06 90 F5 A9 0D 20 49 
1538:D2 FF A0 03 20 CF FF 99 E9 
1540 iFA 00 ae 10 F7 24 90 08 73 
1548:68 20 6E 16 C8 B9 FA 00 01 
1550:99 64 00 C0 01 90 F5 A2 45 
1558:90 38 20 75 8C 20 44 8E 30 
1560:20 E2 55 A9 20 20 D2 FF BF 
1568:20 CF FF F0 C8 C9 CE F0 Al 
1570:25 C9 FE F0 24 30 15 20 BA 
1578;D2 FF C9 22 D0 EA 20 CF A9 
1580 :FF F0 B2 20 D2 FF C9 22 8B 
1583 :F0 DE D0 F2 AA A9 44 A0 51 
1590:17 20 00 13 D0 D2 A0 C9 50 
1598 :2C A0 09 20 CF FF 09 80 35 
15A0:18 E9 01 AA A9 46 D0 E9 0E 
15A8i48 A0 49 B9 0F B6 99 00 6A 
15B0:13 88 10 F7 A9 FB 8D 3F 9F 
15B8:13 A9 FA 80 45 X3 A9 13 EB 
15C0;8D 34 13 A9 3E 8D 33 13 SO 
15C8:68 85 FA 85 66 86 FB 86 0C 
15D0:67 A9 0D 20 02 FF 20 9B 2F 



March 1987 COMPUTE) 101 



15D8:Be 
15E0:FF 
lSEai68 
15F0:06 
15F8:0A 
1600:CF 
1608 i4C 
1610:68 
1618186 
1620:60 
1628:00 
1630:7F 

16 38:20 
1640:68 
1648:18 
1650:15 
1658:88 
1660:38 
1668 :FF 
1670:70 
1678:a5 
1680IFF 
1688:86 
1690:A9 
1698:01 
16A0:C9 
16A8 5 99 
16B0:4C 
1688:03 
16C0:99 
16C8:11 
1600:85 
16D8:44 
16E0:0A 
16E8:17 
16F0:14 
16FS:20 
1700:46 
1706:85 
1710IDA 
1718:17 

17 20:15 
1728 :A5 
1730:FC 
17 38:80 
1740:4C 
1748:03 
1750:68 
1758 :AR 
1760:20 
1768iFD 
1770 I B7 
177eiA6 
1780:48 
1788 :CF 
1790:70 
1798:4E 
17A0:4C 
17A8:20 
17B0:20 
17B8:20 
17C0:EF 
17ca:FP 
17D0:7F 
1708:84 
17E0:43 



A9 2D 
24 90 
A0 00 
00 20 
86 FC 
FF 99 
FB 15 
A2 03 
66 20 
16 A9 
E6 FC 
C9 20 

02 FF 
20 6E 
65 FC 
A9 00 

10 FA 
E5 EC 
38 D0 
12 20 
FE F0 
4C 24 

03 C9 
30 80 

11 E6 
22 F0 
02 11 
0F 14 
4C IE 

02 11 
C8 84 
3D 68 
F0 06 
20 46 
B0 10 
80 00 
37 17 
17 B0 
E^ 20 
29 0F 
A5 FC 
14 C9 
FC 0A 
68 65 

03 F0 

12 14 
C9 30 
68 60 
20 68 
ED FF 

20 BA 
E6 B7 
05 20 
A9 02 
FF AA 
FF 00 
47 00 

21 14 
C3 FF 
D4 17 
C9 FF 
20 CO 
20 OB 
4C D2 
43 60 
60 00 



20 D2 
08 48 
84 67 

59 B6 
C8 CA 
06 00 
A9 12 
20 Al 
00 13 
3B 20 
B9 06 
68 B0 
C8 04 
16 A6 
90 01 
A0 04 
85 05 
A8 A9 
FA 18 
El FF 
05 A9 
14 4C 
22 F0 
00 11 
3D Bl 
0F C9 
C8 C0 

60 48 
14 98 

08 A5 
FA 18 
60 20 
C9 55 
17 90 
4C 12 
11 09 

09 55 
E7 F0 
80 03 
20 27 
C9 08 
IF B0 
0A 65 
FC 85 
14 09 
40 80 
F0 F9 
A9 00 
FF A5 
A5 05 
FF 20 
20 00 
C6 FF 
24 90 
68 20 
56 49 
00 60 
20 CC 
A5 FE 
20 OC 
20 OB 
FF A6 
17 4C 
FF 85 
A5 41 
00 00 



FF 20 
20 AS 

84 68 
48 AE 
30 0C 
20 A5 
20 60 
B6 A2 
A9 20 
02 FF 
00 48 
02 A9 
FC 90 
FB A5 
E8 4C 
99 FA 

85 7A 
20 20 
60 48 
F0 01 
00 20 
27 14 

02 D0 
A9 3A 
3D F0 
2C F0 
11 D0 
C0 00 
48 A9 
FB 99 
68 65 
37 17 
F0 10 
0B 20 
14 4C 
32 B0 
00 EC 
E5 29 
F0 0A 
17 40 
B0 03 
F9 60 
FC 0A 
FC 60 
2C F0 

03 20 

40 86 
80 00 
FA A0 
A6 FC 
0F F5 
FF B0 
20 OF 
D0 16 
D4 17 
45 57 
4C 18 
FF A5 
4C 03 
FF A6 
17 20 
05 20 
79 EF 

41 86 
A6 42 
00 00 



CF 18 
B8 6D 
99 6F 
AB 97 
20 4 5 
B8 2C 
16 7E 
06 AE 
20 04 
A0 D7 
29 33 
20 lA 
EB DC 
FA 43 
C9 90 
00 F7 
60 18 



D2 


2B 


28 


7B 


60 


Al 


02 


3A 


20 


CC 


5B 


A0 


80 


80 


13 


Bl 


0B 


35 


EC 


A9 


00 


65 


20 


E3 


02 


38 


3D 


5A 


09 


F7 


D0 


38 


3A 


7F 


00 


19 


F6 


0B 


20 


6A 


0F 


20 


B0 


E4 


0A 


12 


40 


CC 


48 


7F 


85 


03 


20 


74 


03 


AA 


80 


31 



Back issues of COMPUTE!, 

COMPUTEI's Gazette, or 

any magazine disl<s can 

be ordered by caiiing 

800-346-6767 
(in NY 212-887-8525). 
Some issues may no 
ionger be availabie. 



03 90 
FF A9 
11 5C 
A4 C9 
E6 05 

28 BC 
FF CB 
20 D3 
20 ID 
49 DB 
14 D9 

05 78 
FF E2 
FE BB 
79 60 

06 D8 

29 3D 
42 AC 
A4 4E 
00 C8 



Filedump 

For 
IBM PC/PCjr 



Harry Faulkner 



A file-dump program is useful for 
anyone who needs to examine the 
contents of a disk file in detail. This 
utility was designed originally for use 
with accounting files, but it can dis- 
play the coyitents of any sequential or 
random disk file. The program runs on 
any IBM PC with BASICA or MS-DOS 
computer with compatible BASIC. 



Have you ever needed to examine 
the contents of a disk file? There are 
MS-DOS commands, DEBUG and 
TYPE, that provide limited access. 
The TYPE command displays a file 
by printing each byte as an ASCII 
character. DEBUG is somewhat more 
flexible, but it displays bytes only in 
ASCII and hexadecimal form. 

"Filedump" provides more op- 
tions than either of these com- 
mands. It lets you look at any 
random or sequential disk file and 
send the output to either a monitor 
or a printer. It displays each byte in 
ASCII form {if it is printable) and 
prints its integer, single-precision, 
and double-precision value. The 
program also allov^'S you to start at 
any position v^ithin the file. 

I wrote this program while de- 
veloping home accounting pro- 
grams that use both random and 



sequential files. I needed a way to 
see if the programs were writing 
data to the correct places in these 
files, without having to run the pro- 
gram to get output. The program 
was written on a Leading Edge 
IBM-compatible computer; it runs 
without modification on the IBM 
PC with BASICA or PCjr with Car- 
tridge BASIC. 

Filedump For IBM PC/PCjr 

For instructions on entering this program, 
pleose refer to "COMPUTE!': Guide to Typing 
In Programs" elsewtiere in this issue. 

61 70 BDSUB 1000 'Initialize t 
he field and obtain -File f 
or opening 
KK 80 RETRY=0 

ON 100 caUNT=l:EIGHT»=SPACE*<B) : 
FQUR»=SPflCE» (4) : TWO*=SPAC 
E*C2) !0NE»=SPACE«(1) :EIBH 
TTEMP»=SPACE« O) : FDURTEMP 
»-SPACE» (4) : TWDTEMP«=SPAC 
E*(2) 'initialize variab 
les 

WHILE NOT E0F(1> 
GET #1 

IF CaUNT<IST GOTO 1V0 

LSET ONE»=INCHAR* 

EI6HTTEMPt=RIGHT*<EIB 

HTS, 7) : EIBHT»=EIGHTTEMP»+ 

INCHflR*: 'Add new charac 

ter to right end of strin 

gs 

FOURTEMP*=R I GHT* ( FOUR 
*,3) :FQUR*=FOURTEMP»+mCH 
AR» 

TWOTEMP»=RIGHT*(TWOS, 
1) : TWD*=TWOTeMP«+INCHftR$ 



HE 110 
KH 120 
K! 125 
HH 130 

m 140 



HI 150 



AE 160 



102 COMPUni March 1987 



KP 170 



LL 180 
PI 190 
DN 200 

m 205 



HP 206 

NH 210 



IC 


220 


m 


1000 


a 


100S 


HC 


1010 


JN 


1012 


lA 


1014 


LH 


1016 


LI 


1021 


ES 


1023 


HP 


1025 



EH 


1030 


FC 


1035 


IH 


1040 


IC 


U00 


KH 


1110 


HO 


1120 


f} 


1500 


NS 


1510 


AC 


1520 


6J 


1530 


li 


1540 


ED 


2000 


CB 


2010 


PL 


2020 


jn 


2030 


KL 


2040 


OP 


2050 



INTEGER=CVI (TWD«) : SBL 
PRE ! =CVS ( FOUR$ ) : DBLPRE«=C 
VD(EIBHT») 

GOSUB 2000 
COUNT=CaUNT+l 
UEND 
IF CDUNT<=IST THEN PRINT 
"STARTING BYTE, ";IST;", 
PAST ENDING BYTE, "; COUNT 
-I;", OF FILE.":PRINT "PL 
EASE TRY AGAIN. "! CLOSE #1 
:RETRY=l!BDSUB 1014 
IF RETRY>0 THEN GOTO 80 
IF POPTXOl THEN LPRINT:L 
PRINT:LPRINT,TABC10) , "End 
Q-f -file": ELSE PRINT: PRI 
NT:PRINT, TAB(10),"End of 

file" 
CLOSE «1:END 
REM **« Initialize print 
out, get filename, and i 
nitialize field tts 
ON ERROR GOTO 1100 
CLS 

INPUT "Enter name of fil 
e to be dumped? ",FILE» 
OPEN FILE* FDR INPUT AS 
#1:CL0SE «1:0PEN FILE* A 
S #1 LEN-1 : FIELD #1, 1 

AS INCHAR* 
INPUT "Starting byte #: 
",IST 
PRINT "Output device: (M 

> monitor" 
PRINT " (P 

> printer" 

INPUT " Choice: ", 
PDPT*;POPTX=CINT(INSTR(" 
MmPp",P0PT«)/2>:IF PDPTX 
<1 OR P0PT*/.>2 THEN BEEP: 
PRINT" Invalid entry. Cho 
Dse M or P": GOTO 1025 
IF FfOPT7.= l THEN CL3;G0SU 
B 1300 • Initialize scr 
een or printer 

IF P0PTX=2 THEN GOSUB 15 

00 'Initialize screen 

or printer 

RETURN 

IF ERR=53 THEN PRINT "Fi 

le, ";FILE*i", not found 

. Please try again.": BEE 

P:RESUME 1012 

PRINT "Error # "jERR;" o 

cctirred at line ";ERL 

END 

REM **» Subroutine to pr 

int header line ttt 

INIT*=" BYTE # Char 
Int. Sgl. Prec 

is, val . Dbl. Precis 

. val . " 

IF P0PTX=1 THEN PRINT IN 

IT*sPRlNT 

IF P0PTX=2 THEN LPRINT I 

NIT«:LPRINT 

RETURN 

REM ttt Subroutine to ou 

tput values. ttt 

REM *** This sub outputs 
15 lines to the monitor 
and 50 lines to the 

REM ttt printer then ask 

s if the user wants to o 

utput more data. 

IF PDPTX=-1 THEN PRINT TA 

B!5>r COUNT; TAB(17); DN 

E«; 

IF P0PTX=2 THEN LPRINT T 

AB(51; COUNT; TAB<17); O 

NE«; 

IF COUNT >1 AND POPTy.= l T 



ED 


2060 


KK 


2070 


JC 


2080 


CI 


2090 


ND 


2100 


EK 


2110 


SE 


2120 


PN 


2130 


KB 


2140 


JK 


2150 


EL 


2500 


HE 


2S10 


no 


2520 


DC 


2530 


HN 


2540 


SE 


2550 


Kl 


2560 



HEN PRINT TAB (23); INTEG 

ER; 

IF COUNT >1 AND P0PTX=2 T 

HEN LPRINT TAB (23); INTE 

GER; 

IF COUNT >3 AND P0PTX=1 T 

HEN PRINT TAB (34); SGLPR 

E!) 

IF COUNT >3 AND P0PTX=2 T 
HEN LPRINT TAB (34) ; SGLP 
RE!; 

IF COUNT >7 AND PaPT7.= l T 
HEN PRINT TAB (55); DBLPR 
E#5 

IF C0UNT>7 AND PDPTX=2 T 
HEN LPRINT TAB(55>; DBLP 
RE«; 

IF PaPTX=l THEN PRINT 

IF P0PTX=2 THEN LPRINT 

IF PQPTX=1 AND (tCOUNT-I 
ST+1) MOD 15) =0 THEN GO 
SUB 2500 

IF P0PTX=2 AND ( (COUNT-1 

ST+1) MOD 50> =0 THEN GO 

SUB 2500 

RETURN 

REM ttt Subroutine to qu 

ery for more output *t 

» 

LOCATE , , 1:PRINT:PRINT " 

Hit A to abort, any othe 

r key for more "; 'turn 

cursor on 
EN«=INKEY*: IF EN*="" 
2520 

IF INSTR("Aa",ENS) > 
HEN RETURN 220 
IF POPTy.:=l THEN CLS 
GOSUB 1500 
RETURN 



GOT 



T 



COMPUTE! Disk 
Subscriptions 

COMPUTE! Disks are 
available for the 
following computers: 

• Apple II series 

• Commodore 64 and 126 
. Atari 400/800 /XL/XE 

• IBM PC and PCjr 

Each error-free disk 
contains all the 
programs from the 
previous three issues of 
COMPUTE!. With a disk 
subscription, you'll 
receive one disk — for 
the machine you 
specify — every three 
months. To subscribe, 
call toll free 
800-247-5470 
(in Iowa 800-532-1272). 




Use your 
Commodore 
Printer 
with your 

PC compatible 

Upgraded !o an IBM PC'" and warn lo use your 
Commodore prinlef' With our new IBM/CBM INTER- 
FACE you can ux your Commodore compahble printer 
ivilh your PC compatible Suppons virtually all lexl 
appljcaltons Some graphics suppon ol graphics 
characters and graphics piintouis when usng Com- 
modore prin lers which suppon graphics Cable , disk . and 
inslructions supplied Requires DOS 2 OQ^ QC 
or up IBM PC is a TM ol IBM Corp wOt.yO 

Call (206) 624-4985 now and order. 
Visa & Mastercard welcome! Add S2.00 
for shipping & handling. 

Omnitronix Inc. 

760 Harrison SI.. Seattle, WA 98109 



COMPUTEI 

TOLL FREE 

Subscription 

Order Line 

1-800-247-5470 

InIA l-eOO-532-1272 



LEARN 



ifiijj ji :r< 



MASTER COMPUTERS 
IN YOUR OWN HOME 

tJQw vou can wntfi t>roijrams and g 
zcfnpuiet 10 do psX what'ynj want Get liK 
iiuki out ol any ampuier am) avoid ha»in<i 
to pay the high price d pre-packagcti 
sottwgre. 

LEARN AT YOUR OWN PACE 
IN YOUR SPARE TTME 

l>jr mdependenr s:lx!^ piLKjiati allows icu 
to learn atxM conumteis. operations. at«iii- 
calions and programming in your spare time, 
al home Out instructors provide yx wltti 
one-oit-oneiDinseling. 



LEARN EVEN BEFORE YOU DECIDE ON A COMPUTES 

Evetylhing is explained in simple language. Ymi will enjoy learning lo 
use a computer- EVEN IF VOU OONT (MN ONE Leam tp program on 
any personal computer: IBM. APPtf. COMMODORE, TTIS, arxl more. 

BE YOUR OWN COMPUTER EXPERT 

FrograiDiniiig is the IiesI way lo leim lo itse coiii|iuters. inil we can 
show yoi Hie tesl-and nasi econamicai-way to leim prngrammiiig! 
Send today tor your free inlormatior^ package. No obligation. Mo 
saiesn^an will caD. 




harix 



INSTITUTE 



CENTER FOR COMPUTER EDUCATION 



"-] 



HAUX INSTITUTE CENTER fOft COMPUTER EDUCATION DEPI 61-3 
1543W OLVMfHC =226 L0SANGELE5. C:A 90015-3694 



fES 5erv]nne» to f na oii.onnQwieafii^tnabt]ulcampu!e.sdndcto I 
gramrevigafiofTW' I 



-Aoo . 



Morchl987 COMPUTEI 103 



DOS Calc 



This convenient, menu-driven utility 
for the Commodore 64 includes all the 
disk functions of the familiar "DOS 
Wedge" program, plus a powerful sci- 
entific calculator. A disk drive is 
required to use the program's DOS 
functions. 



"DOS Calc" is two programs in 
one. Not only is it a complete re- 
placement for the "DOS Wedge" 
program supplied on the 1541 or 
1571 Test/Demo disk, but it has a 
built-in scientific calculator. The 
program is entirely menu-driven 
and employs easy-to-use, pop-down 
windows. 

DOS Calc is written in ma- 
chine language, so you must enter it 
with "MLX," the machine language 
entry program found elsewhere in 
this issue. Here are the addresses 
you need to type and save the pro- 
gram with MLX: 

starting address: 0801 
Ending address: 16E8 

After you have saved a copy of 
DOS Calc, it can be loaded and run 
just like any BASIC program. When 
you run it, DOS Calc relocates itself 
to the safe memory area beginning 
at address 49152, a process that 
takes only an instant. 

Once the READY prompt re- 
turns, DOS Calc is ready to use. 
Like the "DOS Wedge," DOS Calc 
works only in immediate mode 
(when you are not running a pro- 
gram). To enter DOS Calc, type @ 
and press RETURN. DOS Calc dis- 
plays the main menu window with 
the following selections: 





Steve Kelly 


A. 


Exit 


B. 


Directory 


C. 


Load 


D. 


Load relocated 


E. 


Save 


F. 


Resave 


G. 


Bsave 


H. 


Re-Bsave 


I. 


Scratch 


T. 


Retiame 


K. 


Copy 


L. 


Validate 


M. 


Initialize 


N. 


Read error channel 


O. 


New a disk 


P. 


Calculator 



To select a function from the 
main menu, simply press the letter 
shown next to the function you 
want. For instance, pressing A exits 
DOS Calc and returns you to 
BASIC. When you choose any other 
function, DOS Calc opens a new 
screen window in which the inter- 
action for that function takes place. 

Directory 

The directory function (B) is per- 
haps the most frequently used DOS 
function. When you press B, DOS 
Calc opens a window and prompts 
you to enter a wildcard specifica- 
tion. As a convenience, it prints the 
asterisk (*) wildcard in the window. 
If you wish to view all the files on 
the disk, simply press RETURN. To 
view only selected files, change the 
wildcard accordingly. 

For example, suppose that you 
want to see all the files beginning 
with GAME. Type GAME* and 
press RETURN. After you enter the 
wildcard, DOS Calc opens a third 
window which contains all the re- 
quested directory information. To 
exit this window and return to the 
main menu, press A. If the disk 
contains more files than will fit in 



the window, you can press B to 
view the next page of the directory. 
Press C to enter a new wildcard and 
begin a new directory search. 

File Functions 

The next eight DOS functions all 
concern existing files. They are 
Load, Load Relocated, Resave, 
Bsave, Re-Bsave, Scratch, Rename, 
and Copy. After you select any of 
these functions from the main 
menu, DOS Calc asks you to enter 
the name of the file you wish to 
manipulate. If you enter a null file- 
name (no name), DOS Calc auto- 
matically displays the directory for 
the current disk. This directory dif- 
fers from the normal directory dis- 
play, however, in that each filename 
is prefaced by a letter. To select a file 
for the current function, simply 
press the letter key that appears in 
front of the filename. If you change 
your mind and decide not to com- 
plete the operation, press A to exit. 

For instance, let's try the Re- 
save command, which deletes an 
existing program from disk and re- 
places it with the BASIC program 
currently in memory. When you 
choose Resave from the main 
menu, DOS Calc opens a window 
asking for a filename. If you press 
RETURN without entering a name, 
DOS Calc opens a secondary direc- 
tory window from which you can 
select the file by pressing a single 
key. Once this is done, the program 
completes the resave. You should 
avoid using any wildcards in the 
directory function when it appears 
as part of a Resave or Re-Bsave 
command. 

The Copy and Rename com- 
mands require two filenames. The 



104 COMPUTil March 1987 



first name you enter is used as the 

name of the new file for the Copy 
command or the new name of the 
existing file for the Rename com- 
mand. This name must be typed in 
(it cannot be derived from the direc- 
tory). The second name indicates 
the original file; this name can be 
taken from the directory. 

DOS Calc provides two func- 
tions that are not included in the 
"DOS Wedge" program. The B in 
Bsave and Re-Bsave stands for bi- 
nary, indicating a binary file con- 
taining machine language, graphics 
data, or something other than a 
BASIC program. Since these func- 
tions save a designated area of 
memory, you must supply two ad- 
dresses: the beginning and ending 
addresses of the area to be saved. 

The Validate, Initialize, and 
Read Error Channel commands re- 
quire little explanation. Since no 
information is required for these 
commands, DOS Calc simply per- 
forms them without any introduc- 
tory prompts. The New command, 
which formats a disk, requires 
either one or two items of infor- 
mation. The first item — the disk 
name — is mandatory. To reformat 
an already formatted disk, you can 
supply a new disk name without 
anything else. To format a disk that 
has never been used, you must sup- 
ply a two-character disk ID after the 
disk name, separating the two items 
with a comma. 

For additional information on 
DOS operations, refer to the user's 
manual for your disk drive. 

Scientific Calcuiator 

DOS Calc also includes a built-in 
calculator which is very useful for 
math, engineering, and various sci- 
entific applications. This calculator 
is different from the familiar pocket 
calculators used by most people. It 
uses a notation called Reverse Polish 
Notation (RPN), which allows you 
to solve complex formulas without 
parentheses. 

When you select the calculator 
from the main menu, two second- 
ary windows appear on the screen. 
On the right is the function win- 
dow, which lists all the calculator 
functions preceded, as usual, by the 
letter key which invokes them. To 
the left is the result window, which 
is subdivided into three sections. 




"DOS Calc" is entirely menu-driven 
and employs easy-to-use, pop-down 
windows. 

The result area contains either an- 
swers from calculations or key- 
board input from you. In the middle 
is the stack display, which holds 
intermediate results. The bottom 
area is a message area where the 
calculator displays error messages 
such as Divide by Zero. 

Notation 

Before looking at the calculator 
functions, let's establish some rules 
for entering numbers. You can en- 
ter any number in either standard 
notation (2534.56 is an example) or 
in scientific notation (123E34 is an 
example). Negative numbers are 
entered somewhat differently than 
you might expect, since the minus 
( — ) sign is already used to signify 
subtraction (see below). Use the 
shifted minus sign (hold down 
SHIFT and press the minus key) as 
a substitute. The second trick has to 
do with the £ symbol used in scien- 
tific notation. This calculator also 
uses the letter £ for another func- 
tion (it causes the stack to wrap 
down; see below). As a substitute, 
use the T symbol (the up-arrow key 
directly to the right of the asterisk). 
Whenever you enter T as part of a 
number, DOS Calc puts an £ in the 
number you are entering. 

Examples 

To start with an easy exercise, let's 
look at how to perform 2 -h 5. In 
RPN there is no need for an equal 
sign ( = ). In this case, you enter 
both numbers followed by the plus 
sign ( + ), which is the operator you 
wish to use. Press the number 2. 
DOS Calc prints a 2 in the result 
window. Now press RETURN. The 
number 2 shifts to the right and also 
appears as the top entry in the stack 
area. Press the number 5. The top 



line of the result window now 
shows that number. Press the plus 
key. The 2 on the stack is replaced 
by a and the result line displays a 

7. Simple arithmetic operations use 
the same general procedure. To 
subtract 2 from 5, you would enter 
the numbers 5 and 2, followed by 
the minus key. 

More complex equations dem- 
onstrate the power of an RPN cal- 
culator. Let's solve the equation 
2048/(8*4). Begin by entering 2048 
and pressing RETURN. Now type 

8, followed by RETURN, and then a 
4. At this point the stack contains 
all the numbers for the equation, in 
correct order. Now press the aster- 
isk (*) key to perform multiplica- 
tion. The result line should display 
32. Press the slash (/) to perform 
division. The calculator displays 
the final result, which is 64. 

Each time you pressed RE- 
TURN in this example, the calcula- 
tor pushed the number from the 
result line onto the stack. All other 
numbers were pushed down one 
location, and the fourth entry on 
the stack was lost. 

There are seven other func- 
tions which, like RETURN, have 
some effect on the calculator's 
stack. The first is Clear Entry: This 
function clears the result line and 
leaves all other entries untouched. 
The Clear Stack function clears the 
result line and the entire stack. The 
next four functions cause the entire 
stack, including the result line, to 
wrap or roll in either direction. A 
wrap allows either the top or bottom 
entry to move from top to bottom, 
or vice versa. A roll causes the top 
or bottom entry to be lost. The sev- 
enth stack function, Exchange, 
swaps the result line with the top 
stack entry. This operation is useful 
if numbers are entered in the wrong 
order and need to be corrected. 

All the remaining functions are 
standard math operations which op- 
erate on the result line. Except for 
Power and Pi, these functions affect 
only the result line. The Power func- 
tion raises the number on the top of 
the stack to the power specified in 
the result line; the answer is left on 
the result line and the stack shifts up 
one location. The Pi function enters 
the value of pi (3.1415926) in the 
result line just as if you had typed it 
from the keyboard. 



March 1987 COMPUTEI 105 



Using a 
seem Strang 


n RPN calculator may 


0A21:20 D2 FF A9 20 20 02 FF BB 


0CB1:53 49 4F 4E 20 42 59 28 71 


e at first, but once you 


0A29:EE 6C CI CA CA CA A0 00 77 

0A31:B1 FB F0 07 09 FF F0 03 OE 


0CB9:5A 45 52 4F FF 55 4E 4B CC 
0CC1:4E 4F 57 4E FF 00 00 00 A4 


become familiar with its powerful | 


0A39:C8 D0 02 A9 20 20 02 FF E7 


0009:00 00 00 00 00 00 00 00 El 


features, you may never want to 


go 


0A41:CA D0 ED Bl FB 85 FD S4 3E 


0CD1:00 00 00 00 00 00 00 00 E9 


back to using 


a simple pocket 


0A49:FE A9 62 20 D2 FF 20 F6 63 
0A51iC2 A5 FD 00 10 E6 FE 18 2F 


0009:00 00 00 00 00 00 41 42 B6 
0CE1:43 44 45 46 47 48 49 4A Fl 


calculator. 








0AS9:A5 FB 65 FE 85 FB 90 02 IB 
0A61:E6 FC 40 08 C2 60 A9 04 21 
0A69:20 CF C2 60 AE 6A CI BD 40 


0CE9:4B 40 4D 4E 4F 50 51 52 F9 
0CF1:53 54 55 2B 2D 2A 2F 00 A3 
0CF9:AE C6 BF 06 DB 06 EC 06 lA 


DOS Calc 








0A71:7E 01 85 FC A9 04 85 FE ID 
0A79:20 AC C2 CE 6A CI AE 6A 30 


0001 :F8 C6 04 C7 20 C7 3C C7 A6 
0009:53 C7 5B C7 60 C7 65 C7 5B 


Please refer to the " 


MIX" article in this issue 1 


0A81:C1 E0 FF F0 0A BD 72 CI AB 


0011:77 C7 88 C7 BD C7 92 C7 OE 


before entering the following program. 




0A89:8D 6B CI 20 F9 C2 60 AD C2 


0019:97 C7 9C C7 Bl C7 BA C7 EA 


0801 :0B 03 


0A 


00 9E 32 30 36 


2E 


0A91:6F 01 8D A7 02 AD 70 CI 63 


0021 sBF C7 7E C6 8A 06 96 C6 AC 


0809:31 m 


00 


00 A0 00 A2 10 


00 


0A99:8D A7 02 AO 71 01 80 A7 CE 


0D29:A2 06 70 06 A9 12 A0 15 AO 


0811 sA9 00 


85 


FB A9 00 85 FG 


BE 


0AA1:02 AE 60 01 AC 6E CI 18 E6 


0D31:A2 00 20 84 CI A9 B2 A0 A3 


0819 :A9 01 


85 


FD A9 08 35 FE 


46 


0AA9:20 F0 FF 60 A5 01 29 FE 92 


0D39tC3 20 E9 CI A9 BD A0 C3 DF 


0821 sBl FD 


91 


FB C8 00 F9 E6 


DF 


0Aal:85 01 A0 00 84 FB 84 FO F7 


0041:38 20 FB CI 20 66 C2 A9 E4 


0829sFE E6 


FC 


CA 00 F2 4C 31 


DA 


0AB9:A2 04 Bl FB 91 FD 08 D0 FC 


0D49:13 A0 01 A2 00 20 84 CI AA 


0831 :C0 AD 


08 


03 8D AA C0 AD 


84 


0AO1:F9 E6 FO E6 FE CA 00 F2 52 


0051 SA9 7D A0 C4 20 E9 CI A9 D5 


0839:09 03 


8D 


AB C0 A9 40 80 


CF 


0AC9:A5 01 09 01 85 01 60 48 5B 


0059:60 A0 04 18 20 FB 01 A9 8A 


0841:08 03 


A9 


C0 80 09 03 A9 


97 


3AD1:AA BO F0 C2 20 02 FF AC ED 


0061:02 20 CF 02 20 F6 02 A9 B6 


0849 :FF 8D 


6A 


CI 60 AS 3A C9 


FD 


0AD9:6A CI BE 78 CI CA CA A9 6B 


0D69:88 A0 C4 18 20 FB CI A9 23 


0851 :FF F0 


03 


6C AA C0 AD 00 


78 


0AE1:60 20 02 FF CA 00 F8 68 70 


0D71:7A A0 C4 18 20 FB CI 20 9F 


0859:02 09 


40 


D0 F6 A9 8E 20 


8D 


0AE9:AA BD Fl C2 20 02 FF 60 09 


0D79i66 C2 AD 00 03 43 AD 01 C2 


0861 :D2 FF 


A9 


13 A13 01 A2 01 


90 


0AF1:75 69 AB B3 6A 6B EE 6B 16 


0DS1:03 48 A9 78 SO 00 03 A9 03 


0869:20 84 


CI 


A9 AO A0 00 20 


0F 


0AF9:C1 AE 6A CI BD 7B CI 8D F0 


0089 :C8 80 01 03 20 DB C6 20 D9 


0871 :E9 CI 


A9 


BB A0 C0 38 20 


70 


0B01:A7 02 BC 75 CI AE 6B CI BB 


0D91:F1 C7 A9 00 A0 DE 20 12 9E 


0879 :FB CI 


20 


66 C2 A9 00 80 


AC 


0B09:18 20 F0 FF 60 A9 41 AC 2A 


0O99:O3 6A 48 A9 13 80 68 01 3B 


0881 :AC C0 


3D 


BD CE A9 20 80 


90 


0Bil:6C CI 85 FB 84 FC 20 E4 7B 


0DA1:20 F9 C2 A9 87 A0 C4 18 90 


0889:80 CE 


A9 


41 A0 52 20 12 


70 


0B19:FF 09 00 F0 F9 C5 FB 90 20 


0DA9:20 FB CI 68 C9 30 90 07 C8 


0891 :C3 AA 


BD 


4A CI 80 9F C0 


CE 


0B21:F5 C5 FC B0 Fl 38 E5 FB 86 


0DB1:O9 3A B0 03 4C 25 06 C9 03 


0899 sBD 4B 


CI 


3D A0 C0 20 E2 


97 


0B29:0A 60 48 A9 8F 85 FB A9 34 


0DB9:5E D0 04 A9 45 D0 F5 C9 75 


03A1:FC 4C 


70 


C0 20 60 C2 6C 


A3 


0B31:CE 85 FC 68 85 FO 18 20 AA 


0DC1:DD D0 04 A9 2D 00 ED 09 6C 


08A9:02 A0 


00 


00 00 46 55 4E 


F4 


0B39:F0 FF A9 00 85 FE A5 C6 37 


0DC9t2E F0 E9 C9 14 D0 03 4C 47 


08Bli43 54 


49 


4F 4E 20 40 45 


69 


0B41:85 CO F0 FA 78 A5 OF F0 06 


0DD1:60 C6 A0 00 A2 lA 09 OE Fl 


08B9:4E 55 


FF 


45 58 49 54 00 


2B 


0B49:0C A5 CE AE 87 02 A0 00 19 


0009 :C4 F0 06 C8 CA 00 F7 F0 5 A 


08C1:44 49 


52 


45 43 54 4F 52 


41 


0B51;84 CF 20 13 EA 58 20 E4 B0 


0OE1:B1 C0 0C F0 05 A9 00 30 Fl 


08C9:59 00 


4C 


4F 41 44 00 4C 


6C 


0B59:FF C9 14 F0 21 09 00 F0 AE 


0DE9:7D C6 98 43 20 04 C7 68 58 


08D1;4F 41 


44 


20 52 45 40 4F 


F3 


0B61:39 C9 20 90 09 09 60 B0 FA 


0OF1:0A AA BO F8 C4 80 08 C6 36 


0809:43 41 


54 


45 44 00 53 41 


C4 


0B69:D5 A6 FO E4 FE F0 CF AC 2A 


0OF9:BD F9 04 80 09 06 20 04 4B 


08E1:56 45 


00 


52 45 53 41 56 


E3 


0B71:BD CE 91 FB 20 D2 FF E6 3F 


0E01:C7 BA CA CA BE 7A 03 20 OS 


08E9:45 00 


42 


53 41 56 45 00 


08 


0B79:FE EE BD CE 00 00 A4 FE 41 


0E09:07 C6 B9 03 20 CO 07 40 B0 


08F1:52 45 


20 


42 53 41 56 45 


07 


0Bai:F0 BC C6 FE CE BO CE 88 9B 


aEll:8F 05 20 20 20 20 20 20 4E 


08F9:00 53 


43 


52 41 54 43 48 


96 


0B89:A9 9D 20 D2 FF A9 20 20 14 


0E19:20 20 20 20 20 20 20 20 35 


0901:00 52 


45 


4E 41 40 45 00 


FE 


0B91:D2 FF A9 90 20 02 FF 40 B8 


0E21:20 30 FF 00 00 48 AD 24 F9 


0909:43 4F 


50 


59 00 56 41 4C 


58 


0B99:3E C3 A6 FE AC BD CE F0 6F 


0E29!C6 D0 0B AD 7D C6 D0 06 C7 


0911:49 44 


41 


54 45 00 49 4E 


51 


0BA1:0C A9 20 88 Dl FB D0 04 08 


0E31:20 20 07 20 00 C8 68 8D EX 


0919:49 54 


49 


41 40 49 5A 45 


A3 


0BA9:88 CA 00 F8 C8 8C BO CE 23 


0E39:24 C6 AC 23 C6 C0 10 F0 2B 


0921:00 52 


45 


41 44 20 45 52 


04 


0BBl:eA 60 46 55 4E 43 54 49 B4 


0E41:1O 99 12 06 C8 SC 23 06 06 


0929:52 2E 


20 


43 48 4E 2E 00 


FF 


0BB9:4F 4E 53 3A FF 45 58 49 28 


0E49:A9 FF 99 12 C6 A9 03 80 FE 


0931 !4E 45 


57 


20 41 20 44 49 


05 


0BC1:54 00 43 4C 45 41 52 20 23 


0E51:6B CI 20 F9 C2 A9 12 A0 B8 


0939:53 4B 


45 


54 54 45 00 43 


00 


0BC9:45 4E 54 52 59 00 43 4C 63 


0ES9:O6 18 20 FB 01 40 92 C5 00 


0941:41 4C 


43 


55 4C 41 54 4F 


24 


0BDlr45 41 52 20 53 54 41 43 08 


0E61:AO 23 06 F0 F8 88 A9 FF 01 


0949:52 FF 


A4 


00 3B 09 00 CA 


AC 


0BD9:4B 00 57 52 41 50 20 55 86 


0E69:99 12 06 80 23 C6 00 DO 2C 


0951: DA CA 


6D 


CB 6A CB 64 CB 


05 


0BE1:50 00 57 52 41 50 20 44 FF 


0E71:20 20 07 20 00 07 A9 01 7A 


0959:67 CB 


63 


CC E0 CC DO CC 


0E 


0BE9:4F 57 4E 00 52 4F 4C 40 FB 


0E79:8D 7D C6 38 60 00 20 04 5F 


0961:54 CD 


58 


CD 60 CD 5A CE 


B6 


0BF1:20 55 50 00 52 4F 40 40 20 


0E81 !C7 A0 C4 A9 C5 20 67 BS 13 


0969:20 05 


FF 


00 41 00 00 00 


00 


0BF9:20 44 4F 57 4E 00 45 58 E5 


0E89:18 60 20 04 07 A0 04 A9 02 


0971:00 00 


00 


00 00 00 00 00 


83 


0C01:43 48 41 4E 47 45 00 43 60 


0E91:C5 20 50 B8 18 60 20 04 B4 


0979:00 00 


00 


0A 00 0E A0 A8 


B6 


0C09:48 41 4E 47 45 20 53 49 6E 


0E99:C7 A)3 C4 A9 C5 20 28 BA AE 


0981 :B0 A4 


AC 


B4 48 8A EE 6A 


AA 


0C11:47 4E 00 49 4E 54 45 47 8A 


0EAl:ia 60 20 04 C7 A0 C4 A9 lA 


0989:C1 AE 


6A 


CI 9D 72 CI 8D 


59 


0C19!45 52 00 53 51 55 41 52 52 


0EA9:C5 20 0F BB 18 60 20 6C 3D 


0991 :6B CI 


98 


90 75 CI 68 9D 


07 


0C21:45 20 52 4F 4F 54 00 50 3F 


0EB1:C2 20 6C C2 68 68 68 80 34 


0999:78 CI 


E0 


00 00 26 AD A7 


96 


0C29:4F 57 45 52 00 50 49 00 60 


0EB9:01 03 68 80 00 03 60 20 E9 


09A1:02 SD 


70 


CI AD A7 02 80 


DF 


0C31:53 49 4E 45 00 43 4F S3 62 


0EO1:2E C7 A9 FF 8D 7D 06 A9 B5 


09A9:6F CI 


AD 


A7 02 80 71 CI 


FE 


0039:49 4E 45 00 54 41 4E 47 BD 


0EC9:30 8D 12 C6 A9 FF 80 13 8B 


09B1:38 20 


F0 


FF 8E 6D CI 8C 


40 


0C41:45 4E 54 00 41 52 43 54 48 


0ED1:C6 A9 00 80 23 C6 8D 24 08 


09B9:6E CI 


A9 


00 8D A7 02 A9 


61 


0C49:41 4E 47 45 4E 54 00 44 DA 


0EO9:O6 38 60 A2 19 A0 00 98 81 


09C1:00 80 


A7 


02 A9 04 85 FO 


Bl 


0051:45 47 2D 3E 52 41 44 00 87 


0EE1:99 C5 C4 08 CA 00 F9 20 0F 


09C9:AE 6 A 


01 


BO 7E CI 85 FE 


E6 


0C59:52 41 44 20 3E 44 45 47 IB 


0EE9:C7 C6 38 60 20 04 C7 A2 EB 


0901:20 AC 


C2 


AD 6A CI D0 05 


53 


0C61:00 4C 4F 47 2F 45 00 45 BE 


0EF1:D9 A0 04 20 04 BB 38 60 24 


09D9:A9 93 


20 


D2 FF 20 F9 C2 


0E 


0069:58 50 2P 45 FF 53 54 41 33 


0EF9:A9 09 A0 04 20 A2 BB 20 E4 


09E1:A9 00 


20 


OF 02 20 F6 02 


11 


0071:43 4B 3A 00 00 00 00 00 45 


0F01:20 C7 18 60 A2 14 A0 00 00 


09E9;60 A2 


41 


8E 60 01 18 20 


A0 


0C79:00 00 00 00 FF 52 45 53 B8 


0F09JB9 CA C4 99 C5 C4 CB CA 86 


09F1:FB CI 


A9 


02 20 OF C2 20 


AD 


0C81s55 40 54 3A 00 00 00 FF 85 


0F11:D0 F6 A9 00 A8 A2 05 99 FD 


09F9:F6 C2 


60 


85 FB 84 FC A9 


32 


0C89:4D 45 53 53 41 47 45 53 3E 


0F19:D9 C4 C8 CA D0 F9 38 60 5A 


0A01:18 90 


02 


A9 38 80 15 C2 


05 


0C91:3A FF 49 40 40 45 47 41 FB 


0F21:A2 14 A0 13 B9 C5 04 99 E2 


0A09:A9 62 


20 


02 FF AC 6A CI 


05 


0C99:4C 20 51 55 41 4E 54 49 94 


0F29:CA C4 83 CA 00 F6 A9 00 51 


0A11:BE 78 


01 


CA CA 18 90 16 


75 


0CA1:54 59 FF 4F 56 45 52 46 El 


0F31:AS A2 05 99 C5 C4 C8 CA 24 


0A19:AD 6C 


01 


20 02 FF A9 2E 


71 


0CA9:4C 4F 57 FF 44 49 56 49 E3 


0F39:D0 F9 38 60 A2 05 A0 00 B5 



106 COMPUTEI March 1987 



0F41SB9 CA C4 


99 C5 


C4 ca CA BE 


11D1:A0 C8 20 E9 CI A9 07 A0 7C 


1461:30 3A FF A9 18 A0 06 A2 BC 


0F49:D0 F6 A2 


CA A0 


G4 20 D4 BB 


11D9:C9 38 20 FB CI A9 11 8D 17 


1469:05 20 84 CI A9 52 A0 CC 6D 


0F5l!BB 38 60 


A5 66 


49 FF 35 9F 


11E1:39 C9 A2 01 20 C6 FF A2 36 


1471:20 E9 CI A9 5A A0 CC 18 FD 


0F59:66 18 60 


20 CC 


BC 18 60 A8 


11E9:04 A8 20 CF FF CA D0 F9 FF 


1479:20 FB CI 20 66 C2 A9 53 CF 


0F61:20 71 BF 


18 60 


A0 C4 A9 IE 


11F1:20 B3 CA 20 CF FF C9 00 7E 


1481 :8D 8C CE A2 09 A0 0A A9 20 


0F69!CA 20 8C 


BA 20 


C4 C7 20 F5 


llF9iF0 06 99 E5 C3 C8 D0 F3 A6 


1489:10 20 2A C3 F0 07 20 BE E5 


0F71:7B BF 20 


04 C7 


18 60 A0 81 


1201:20 CC FF AD EA C8 C9 22 73 


1491 :CE 20 6C C2 60 20 9C CC 6C 


0F79:AE A9 A8 


20 A2 


BB AD 7D 4D 


1209:D0 41 A9 E5 A0 C8 33 20 32 


1499:90 F4 B0 F5 EE AC C0 20 83 


0F81:C6 D0 03 


20 20 


C7 18 60 4A 


1211 :FB CI CE 39 C9 D0 CB 20 5A 


14A1:3B C9 08 A9 09 8D 6B CI 8C 


0F89:20 6B E2 


18 60 


20 64 E2 9F 


1219:66 C2 20 0D C3 C9 02 D0 10 


14A9:20 F9 C2 A9 8C A0 CE 18 EF 


0F91:18 60 20 


B4 E2 


18 60 20 7B 


1221 !0B AD 3A C9 D0 F4 20 6C 21 


14B1:20 FB CI A9 00 8D AC C0 0C 


0F99:0E E3 18 


60 A0 


C7 A9 AC E4 


1229 :C2 4C C5 C9 48 A9 01 20 22 


I4B9:28 60 43 4F 50 59 20 4F E2 


0FA1:20 A2 BB 


A0 C4 


A9 C5 20 72 


1231 !C3 FF 68 C9 04 D0 06 20 70 


14C1:52 20 52 45 4E 41 40 45 11 


0FA9:0F BB 18 


60 86 


65 2E E0 4E 


1239:6C C2 4C 41 C9 48 20 8A IC 


14C9:FF 4E 45 57 20 4E 41 4D AO 


0FB1:D4 A0 C7 


A9 AC 


20 28 BA E6 


1241 ;CD 68 AE AC C0 D0 17 20 9E 


1401:45 00 00 4F 4C 44 20 4E 93 


0FB9:18 60 20 


EA B9 


18 60 20 BD 


1249 :6C C2 60 EE 3A C9 A9 E5 81 


1409:41 4D 45 00 FF A9 43 2C F7 


0FC1:ED BF 18 


60 A0 


C4 A9 C5 01 


1251 :A0 C8 18 20 FB CI A9 01 38 


14E1 ;A9 52 8D SC CE A9 13 A0 01 


0FC9:20 A2 BB 


60 A2 


C5 A0 C4 50 


1259:20 C3 FF 4C 17 CA C9 00 BA 


14E9:09 A2 05 20 84 CI A9 BA IB 


0FD1:20 D4 BB 


60 AD 


24 C6 F0 2F 


1261 :D0 05 20 6C C2 33 60 4A FB 


14F1:A0 CC 20 E9 CI A9 C9 A0 29 


0FD9il7 A9 12 


85 7A 


A9 C6 85 16 


1269:18 69 04 AA A0 0C 20 F0 85 


14F9:CC 18 20 FB CI 20 66 C2 70 


0FEl!7B 20 79 


00 20 


F3 BC 20 5F 


1271 !FF A9 03 A2 03 A0 FF 20 45 


1501 :A2 09 A0 0A A9 10 20 2A 6B 


0FE9slB BC 20 


CC C7 


20 C7 C6 AA 


1279 :BA FF A9 00 20 BD FF 20 48 


1509 :C3 F0 19 AC BD CE A9 3D F8 


0FF1:60 A9 03 


8D 6B 


CI 20 F9-80 


1281 :C0 FF A2 03 20 C6 FF A2 49 


1511:99 8F CE EE BD CE A2 0B 2E 


0FF9:C2 A0 C4 


A9 C5 


20 2E ca A8 


1289:10 AC BD CE 20 CF FF 99 5F 


1519 !A0 0A A9 10 20 2A C3 F0 6E 


1001 :A9 08 8D 


6B CI 


20 F9 C2 AS 


1291 :8F CE C9 22 F0 04 C8 CA 80 


1521:07 20 BE CE 20 6C C2 60 34 


1009 :A0 C4 A9 


CA 20 


2E ca 20 F7 


1299 :D0 F2 8C BD CE A9 FF 99 07 


15 29! AD BD CE 8D 44 CD EE AC 30 


1011 :F6 C2 A0 


C4 A9 


CF 20 2E B8 


12A1:8P CE 20 CC FP A9 03 20 DE 


1531 :C0 20 3B C9 B0 EE A9 0B 67 


1019 :C8 20 P6 


C2 A0 


C4 A9 D4 F0 


12A9:C3 FF 20 6C C2 A9 00 85 BC 


1539:80 6B CI 20 F9 C2 A9 SF FC 


1021 :20 2E C8 


20 F6 


C2 A0 C4 C0 


12B1:D4 18 60 20 91 B3 20 DD CD 


1541 sA0 CE 18 69 00 90 01 C8 16 


1029 :A9 D9 20 


2E ce 


60 20 A2 26 


12B9:BD A0 00 B9 01 01 F0 06 74 


1549:18 20 FB CI A9 00 8D AC 38 


1031 jBB 20 DD 


BD 20 


59 C8 A0 67 


12Cli99 E5 C8 C8 D0 F5 A9 20 A3 


1551 :C0 4C 21 CO A9 56 D0 02 3A 


1039:00 B9 00 


01 F0 


03 C8 D0 CD 


12C9:99 E5 C8 C8 60 4C 4F 41 ED 


1559:A9 49 8D 8C CE 4C BE CE 19 


1041 :F8 A2 0F 


88 89 


00 01 9D 5E 


12D1:44 FF 4E 41 4D 45 00 30 A5 


1561:20 79 CD 20 90 CD 08 20 Al 


1049:67 C8 CA 


88 C0 


FF 00 F4 CD 


12D9;3A FF A9 01 2C A9 00 8D F5 


1569 :CE CD 20 8A CD 28 60 20 0B 


1051 :A9 67 A0 


C8 18 


20 FB CI BB 


12E1:0D CB A9 13 A0 06 A2 05 9D 


1571:90 CD 90 04 20 CE CD 38 B9 


1059:60 A9 20 


A0 00 


A2 10 99 66 


12E9:2g 84 CI A9 CD A0 CA 20 B8 


1579:60 A9 0F A2 08 AS 20 BA 23 


1061:67 C8 ca 


CA D0 


F9 60 20 7C 


12F1:E9 CI A9 D2 A0 CA 18 20 5E 


1581 :FF A9 00 20 BD FF 20 C0 07 


1'069:20 20 20 


20 20 


20 20 20 89 


12F9:FB CI 20 66 C2 A2 09 A0 4A 


1539 !FF 60 A9 0F 20 C3 FF 60 62 


1071:20 20 20 


20 20 


20 39 FF A3 


1301:09 A9 10 20 2A C3 F0 31 8D 


1591 :A2 0F 20 C6 FF B0 27 A0 F2 


1079:8A A2 00 


9A 48 


A9 13 8D CD 


1309sA9 01 A2 08 A0 00 20 BA 19 


1599:00 20 CF FF C9 00 F0 06 30 


1081:66 CI 20 


F9 C2 


68 C9 0E C4 


1311 :FF AD BD CE A2 8F A0 CE AA 


15A1:99 15 CE C3 00 F3 A9 FF ED 


1089 :D0 09 A9 


92 A0 


C4 18 20 IB 


1319:20 BD FF A9 00 85 90 A6 51 


15A9:99 15 CE 20 CC FF A9 30 AB 


1091 :FB CI 60 


C9 0F 


D0 09 A9 40 


1321 :2B A4 2C 20 D5 FF 86 2D 76 


15B1:CD 15 CE D0 07 CD 16 CE 59 


1099 :A3 A0 C4 


18 20 


FB CI 60 A2 


1329:84 2E 20 60 CD 90 06 20 04 


15B9:D0 02 18 60 38 60 A0 00 5A 


10A1:C9 14 D0 


09 A9 


AC A0 C4 5C 


1331 :6C C2 4C 44 A6 20 6C C2 5D 


15C1:A2 0D B9 32 CE 99 15 CE B0 


10A9:18 20 FB 


CI 60 


A9 BD A0 3F 


1339:60 20 9C CC 90 CA B0 F5 FE 


15C9!C8 CA 00 F6 F0 EE A9 IE 49 


10B1:G4 18 20 


FB CI 


60 57 49 85 


1341:28 52 45 29 20 28 42 29 9A 


15Di:A0 05 A2 0C 20 84 CI A9 E2 


10B9:4C 44 20 


43 41 


52 44 20 45 


1349:20 53 41 56 45 FF 4E 41 E9 


15D9!F4 A0 CD 20 E9 CI A9 15 21 


10C1:4F 52 20 


52 45 


54 55 52 BF 


1351 :4D 45 00 30 3A FF 00 53 97 


15E1:A0 CE 18 20 FB CI 20 66 A2 


10C9:4E FF 20 


20 20 


20 20 20 F8 


1359:54 41 52 54 3A 00 00 45 A0 


15E9:C2 A9 00 A0 FE 20 12 C3 4A 


10D1:20 20 20 


20 20 


20 20 20 Fl 


1361 :4E 44 3A FF A9 40 2C A9 57 


15F1:20 6C C2 60 44 49 53 4B DE 


10D9:20 20 20 


20 20 


20 20 20 F9 


1369 :C0 2C A9 80 2C A9 00 35 C5 


15P9:20 45 52 52 4F 52 20 44 3D 


10E1:20 20 20 


20 FF 


20 20 20 01 


1371:02 A9 18 A0 06 A2 05 20 P4 


1601:49 53 50 4C 41 59 00 50 35 


10E9:20 20 20 


20 20 


20 20 20 0A 


1379:84 CI A9 40 A0 CB 20 E9 E9 


1609:52 45 53 53 20 41 4E 59 4B 


10F1:20 20 20 


20 20 


20 20 20 12 


1381 :C1 A9 4E A0 CB 18 20 FB CI 


1611:20 48 45 59 FF 20 20 20 3F 


10F9:20 20 20 


20 20 


20 20 20 lA 


1389 :C1 24 02 50 08 A9 56 A0 13 


1619:20 20 20 20 20 20 20 20 45 


1101:20 20 20 


20 20 


20 FF 45 08 


1391 :CB 18 20 FB CI 20 66 C2 85 


1621:20 20 20 20 20 20 20 20 4D 


1109:58 49 54 


00 4E 


45 58 54 C0 


1399 :A2 09 A0 09 A9 10 20 2A EF 


1629:20 20 20 20 20 20 20 20 55 


1111:20 50 41 


47 45 


00 4E 45 FF 


13A1:C3 D0 06 24 02 30 66 10 8E 


1631:20 FF 44 45 56 49 43 45 ED 


1119:57 20 53 


45 41 


52 43 48 CF 


13A9:60 24 02 10 0B EE AC C0 78 


1639:20 45 52 52 4F 52 FF 4E 48 


1121 :FF 24 30 


3A 2A 


20 20 20 28 


13B1:A9 53 80 ac CE 20 BE CE 3F 


1641 t45 5 7 20 41 20 44 49 53 P5 


1129:20 20 20 


20 20 


20 20 20 4B 


13B9:AD BD CE A2 BF A0 CE 20 E6 


1649:4B 45 54 54 45 FF 4E 41 44 


1131:20 20 20 


20 24 


30 3A 2A Fl 


13C1:BD FF 24 02 50 IF A2 0B BA 


1651 :4D 45 2C 49 44 00 4E 30 7E 


1139:FF 00 00 


20 79 


CD 90 01 82 


13C9:A0 0E 20 14 CC B0 F7 48 6A 


1659:3A FF A9 18 A0 06 A2 05 C0 


1141:60 A9 16 


A0 06 


A2 04 20 AD 


13D1:98 48 A2 0D A0 0C 20 14 05 


1661:20 34 CI A9 3F A0 CE 20 CB 


1149:84 CI A9 


B6 A0 


C8 20 E9 11 


13D9:CC B0 F7 84 FD 85 FE 68 46 


1669 :E9 CI A9 4E A0 CE 18 20 A5 


1151 :C1 A9 34 


A0 C9 


18 20 FB 3A 


13E1:85 FB 68 35 FC A9 01 A2 62 


1671 :FB CI 20 66 C2 A2 09 A0 C9 


1159!C1 20 66 


C2 A9 


24 85 FB 42 


13E9:08 A0 00 84 9D 20 BA FF 67 


1679 :0A A9 13 20 2A C3 F0 08 C3 


1161 !A9 C9 85 


FC AD 


BD CE 48 95 


13Flt24 02 50 09 A9 FB A6 FD CD 


1681 :A9 4E 80 8C CE 20 BE CE 03 


1169 :A9 00 8D 


BD CE 


A2 07 A0 9D 


13F9:A4 FE 4C 03 CC A9 2B A6 F5 


1689:20 6C C2 60 49 30 3A 20 DE 


1171 :0A A9 10 


20 34 


C3 D0 07 60 


1401 :2D A4 2E 20 D3 FF 20 60 18 


1691:20 20 20 20 20 20 20 20 BD 


1179:A9 2A 8D 


24 C9 


A9 01 18 FD 


1409 :CD 20 6C C2 60 20 9C CC 63 


1699:20 20 20 20 20 20 20 20 C5 


1181:69 03 A2 


21 A0 


C9 20 BD A9 


1411:90 97 B0 F5 A9 12 35 FB 79 


16A1:20 20 20 20 20 20 20 20 CD 


1189 :FF 68 8D 


BD CE 


A9 01 A2 15 


1419 :A9 C6 85 FC A9 00 8D BD 6E 


16A9!20 20 20 20 20 20 20 20 D5 


1191:08 A0 00 


8C 3A 


C9 20 BA 9C 


1421 :CE A9 05 20 34 C3 A9 0D CE 


16B1:20 20 20 20 20 20 20 20 DD 


1199jFF 20 C0 


FF 20 


6F CD 90 C6 


1429:91 FB 98 AA A0 00 A9 2F 5E 


16B9:20 20 20 20 20 00 20 79 BE 


11A1:05 A9 00 


4C 2C 


CA 20 6C AE 


1431:01 FB B0 ID Bl FB C9 3A 74 


16C1:CD A2 0F 20 C9 FF A0 00 F0 


11A9:C2 A2 01 


20 C6 


FF 20 CF 3E 


1439 :B0 17 C8 CA D0 F0 20 09 A9 


16C9:AE BD CE E8 E8 E8 B9 8C 10 


11B1:FF C9 22 


D0 F9 


A0 00 99 83 


1441 :C7 20 9B BC 18 AS 62 65 16 


16D1:CE 20 D2 FF C8 CA 00 F6 Dl 


11B9:CA C8 20 


CF FF 


C8 C9 00 2B 


1449:63 38 00 05 A5 64 A4 65 09 


1609:20 CC FF AD AC C0 F0 03 71 


11C1:D0 F5 20 


CC FF 


A9 23 A0 28 


1451:18 60 53 43 52 41 54 43 BF 


16Els4C 8A CD 4C 63 00 00 00 70 


11C9:02 A2 01 


20 84 


CI A9 CA 01 


1459:48 FF 4E 41 40 45 00 53 56 


® 



March 1987 COMPUTE! 107 



Diskcheck: 

Apple Sector Editor 
For DOS 3.3 



Steve Meyles 



A disk editor is useful for learnijtg 
about disk organization and many 
other tasks. This program, recom- 
mended for intermediate and ad- 
vanced programmers, provides all the 
basic functions you need to examine 
and edit the contents of an Apple DOS 
3.3 disk. A disk drive is required. 



Have you ever needed to repair a 
garbled Apple II disk? Without a 
good disk-editor program, the task 
can become a nightmare, "Disk- 
check" allows you to examine and 
modify the contents of any sector 
on an Apple II disk formatted with 
DOS 3.3. If you're just learning 
about how DOS 3.3 disks are orga- 
nized, the program is an invaluable 
educational tool. Other important 
uses include repairing damaged 
disk data and concealing files from 
unauthorized users. 

Since this program is written in 
machine language, you must type it 
in with "MLX," the machine lan- 
guage entry program published 
elsewhere in this issue. Here are the 
starting and ending addresses for 
MLX: 

Starting address: 1000 
Ending address: 197A 

After you type in and save the 
program, run it with BRUN. The 
photograph illustrates the Disk- 
check work screen. The central area 
of the screen displays the contents 
of one disk sector. The rest of the 
screen contains prompts and other 
information. 

One-Key Operation 

Diskcheck offers several different 
functions; each of them is invoked 
by pressing a single key. The sim- 
plest commands are Q, which exits 



.jf.tntCK i-tl-lUK turiiJR BV SltMt llttLt, 1 



0M 



i Qe 85 24 A9 tIB 

3 CI FB AS FF 8D 

5 ae B9 29 98 28 

} ca IB 06 F5 F8 pTHi 

- 04 fla CI AS C4 "^NOT ft L 

3 83 ftE B3 fie D3 OS 3.3 < 

2 D4 D5 D8 Aa C4 TfiRTUP r 

J fiE 09 aa 93 B0 isK.r- 

3 B0 80 09 98 89 
i 80 83 88 ee 89 
3 80 00 88 08 88 
3 88 09 86 08 88 
9 88 89 89 08 80 
a 88 88 88 88 80 
a 88 08 89 99 88 i 

SECTOR i 88 COMMAND ->R_ 



sjehb ft SECTOR <w;rite a sector (p-v-yr 

"Diskcheck" provides several differetit 
functions for examining and editing the 
contents of Apple 11 disks. 



the program, and C, which clears 
the screen and displays a catalog of 
the current disk. Press Return when 
you have finished looking at the 
catalog display. 

Each byte in the current sector 
is displayed as a two-digit hexadec- 
imal value. The inverse (reverse) 
cursor marks your position in the 
byte display. Use the I, J, K, and M 
keys to move the cursor up, left, 
right, and down, respectively. The 
current track and sector are dis- 
played at the bottom of the byte 
display area. 

The Read command (R) lets 
you read and display the contents 
of any sector on the disk. After you 
press R, the inverse cursor moves to 
the track and sector area below the 
byte field. To choose a new track, 
enter a two-digit hexadecimal value 
and press Return. The program 
then moves the cursor to the sector 
display and waits for you to enter a 
new sector value. After you press 
Return, the new sector is read from 
disk and shown on the screen. 

For instance, sector $0F of 
track $11 contains directory infor- 
mation. To view this, enter 11 for 
the track and OF for the sector. 



Diskcheck reads the first sector of 
the directory and displays it on the 
screen. 

The plus {+) and minus (—) 
keys allow you to move forward 
and backward through the disk 
without having to enter new track 
and sector values for each sector. 
The plus key reads the next sector 
and the minus key backs up to read 
the previous sector. 

The Write command (W) 
writes the current sector back to 
disk. This is normally done after 
you have made some changes to 
the sector's contents. 

The Fill command (F) fills all or 
part of the sector with the specified 
byte value. This function operates 
from the current cursor position to 
the end of the sector, so you should 
position the cursor at the desired 
bvte before selecting the function. 
After you press F, Diskcheck asks 
you to enter the byte value and 
press Return. The designated area 
is then filled with that value. 

Editing 

The Text (T) and Hex (H) functions 
are used to edit the current sector. 
In Hex mode, you can change a 
byte by entering a new two-digit 
hexadecimal value. Text mode is 
useful in cases where you need to 
enter a number of ASCII characters. 
When you press T, Diskcheck asks 
you to choose between flashing, in- 
verse, and normal characters. After 
you respond to this prompt, you 
can enter new values simply by 
pressing one key for each byte. To 
exit editing mode, press Return. 

If you're not familiar with Ap- 
ple DOS 3.3, it's best to practice on 
an unimportant disk rather than 
one which contains important 



108 COMPOTEI March 1987 



information. A disk editor is a very 
powerful tool; in the worst case, 
you might scramble an entire disk 


llABi 


2D 2D ZD 


03 


0F 0D 


0D 


01 


4A 


1448: 20 38 15 68 68 60 B0 01 DE 


11B0: 


0E 04 13 


2D 


2D 2D 


2D 


2D 


BS 


1450: 60 8D 00 03 AD 0A 03 SD 65 


IIBB: 


2D 2D 2D 


2D 


2D 2D 


2D 


2D 


DA 


14SS! 03 03 AD 0B 03 BD 04 03 82 


11C0: 


2D 2D ZD 


BD 


28 IZ 


29 


05 


24 


1460: A9 87 20 ED FD 20 58 FC 40 


by changing only a few bytes. 


11C8! 


01 04 20 


01 


20 13 


05 


03 


DA 


1468: AD 00 03 C9 10 D0 39 20 BA 


Note that this program is de- 
signed for use with normal DOS 3.3 


11D0! 


14 0F 12 


20 


28 17 


29 


12 


07 


1470: 3C 15 44 49 53 4B 60 49 FA 


11D8: 

11E0! 


09 14 05 
03 14 0F 


20 
12 


01 20 
20 28 


13 
11 


05 
29 


DA 
79 


147B! 53 60 57 52 49 54 45 60 F8 
1480: 50 52 4F 54 45 43 54 45 B9 


disks. (Don't try to edit ProDOS 


UEB: 


15 09 14 


BD 


20 20 


20 


20 


15 


1488: 44 61 SD 8D CB C9 D4 A0 6D 


disks with this program.) If a disk 
has been specially formatted with 


11F0: 
IIFB: 
1200! 


28 14 29 
28 08 29 
ZB 29 20 


05 
05 
20 


18 14 
18 20 
28 2D 


20 
20 
29 


20 
29 
20 


13 
50 
72 


1490! CI CE D9 A0 CB C5 D9 A0 5C 
1498: D4 CF A0 C3 CF CE D4 C9 9C 
14A0: CE D5 C5 00 20 3B IS 60 CA 


extra sectors, those sectors may not 
be accessible to Diskcheck. Similar- 
ly, you may get peculiar results if 


1208: 


20 28 06 


29 


09 0C 


0C 


20 


4A 


14A8i C9 40 D0 60 20 5C 15 44 C6 


1210: 
121B: 


20 20 20 
20 28 03 


BD 
29 


Z0 Z0 

01 14 


20 
01 


20 
0C 


0B 
AF 


14B0! 52 49 56 45 60 45 52 52 B2 

14BB! 4F 52 6C 60 43 41 4E 67 D3 


1220! 


0F 07 20 


20 


20 28 


09 


ZC 


73 


14C0: 54 60 52 45 41 44 6F 57 IB 


you try to edit a commercially copy- 


1228: 


0A 2C 0B 


2C 


0D 29 


0D 


0F 


B6 


14Ca: 52 49 54 45 BD A0 A0 A0 IC 


protected disk which contains de- 
liberate errors or nonconventional 


1230: 
1238: 


16 05 0D 
20 20 20 


05 

00 


0E 14 
A9 02 


20 

85 


20 
22 


B3 
FA 


14D0: A0 A0 A0 A0 A0 A0 A0 A0 FS 
14D8: A0 A0 A0 A0 A0 A0 A0 A0 01 


1240: 


A9 14 85 


23 


20 SB 


FC 


60 


DD 


14E0: A0 A0 54 52 41 43 4B 6F 4E 


file structures. 


1248! 


AD 55 C0 


20 


58 FC 


A9 


00 


BC 


14E8: 53 45 43 54 4F 52 BD 8D 26 




1250: 


SD 01 03 


AD 


06 03 


BD 


02 


10 


14F0: CB C9 D4 A0 CI CE D9 A0 32 




1258: 


03 AE 02 


03 


20 44 


F9 


20 


40 


14F8: CB C5 D9 A0 D4 CF A0 C3 AS 


Diskcheck 


1260: 


5C 15 A0 


BA 


A0 00 


A0 


00 


FD 


1500: CF CE D4 C9 CE D5 C5 00 56 


126S: 


98 18 6D 


02 


03 AA 


BD 


00 


EA 


1508: 20 38 15 60 20 5C 15 42 D7 


Please refer to the "MLX" article in this issue 


1270: 


IF AA 20 


44 


F9 A9 


A0 


20 


EE 


1510: 41 44 60 53 45 43 54 4F 5C 


before entering the following program. 


1278: 


F0 FD CB 


C0 


08 D0 


E9 


20 


31 


1518: 52 61 BD 8D CB C9 D4 A0 06 




1280! 


5C IS A0 


A0 


00 A0 


00 


98 


51 


1520: CI CE D9 A0 CB CS D9 A0 ED 


START ADDRESS: 1000 


1288: 


IB 6D 02 


03 


AA BD 


00 


IF 


EF 


1528: D4 CF A0 C3 CF CE D4 C9 2E 


END ADDRESS! 197 A 


1290: 


C9 80 90 


06 


C9 A0 


B0 


0Z 


60 


1330: CE D5 C5 00 20 38 15 60 5C 




1298: 


29 7F 20 


F0 


FD CB 


C0 


08 


E0 


1538: 20 5C 15 60 88 00 2C 00 CE 


1000: A9 00 8D 03 03 aD 04 03 30 


12A0: 


D0 E5 A9 


BD 


20 ED 


FD 


98 


02 


1540: C0 10 FB 20 5C 15 A0 88 51 


1008: 8D 05 03 SD 06 03 BD 0A CA 


12A8: 


IB 6D 02 


03 


SD 02 


03 


EE 


0E 


1S4BS 00 AD 00 C0 2C 10 C0 C9 D6 


1010: 03 BD 0B 03 20 2D 13 20 AZ 


12B0: 


01 03 AD 


01 


03 C9 


10 


D0 


0C 


1550: 80 90 05 C9 A0 B0 01 60 46 


1018: 3D It 20 48 12 A9 ID BD A2 


12BBI 


A0 AD 02 


03 


BD 07 


03 


20 


B7 


155B: 20 F0 FD 60 85 45 84 47 26 


1020: 08 03 A9 10 BD 09 03 A9 7B 


12C0: 


5C 15 BD 


D4 


D2 CI 


C3 


CB 


4B 


1560: 86 46 68 85 FA 68 83 FB 45 


1028: -13 20 5B FB A9 23 85 24 16 


12CB! 


A0 BA A0 


00 


AE 03 


03 


20 


A7 


1568: E6 FA D0 02 E6 FB A0 00 67 


1030: 20 BE 18 20 38 IS C9 D2 91 


12D0! 


44 F9 20 


5C 


15 A0 


A0 


A0 


6C 


1570: Bl FA F0 0B 20 ED FD E6 9C 


1038: D0 09 20 72 16 20 2D 13 CC 


12DB: 


D3 C5 C3 


D4 


CF D2 


fl0 


BA 


E3 


1578: FA D0 F5 E6 FB D0 Fl AS 2E 


1040: 4C lA 10 C9 D7 D0 0C 20 E5 


12E0: 


A0 00 AE 


04 


03 20 


44 


F9 


86 


1580: FB 48 AS FA 48 A5 45 A6 29 


1048: DD IB 20 72 16 20 65 13 97 


12EB: 


20 5C 15 


A0 


A0 A0 


C3 


CF 


BF 


158B: 46 A4 47 60 AD 05 03 38 AD 


1050: 4C lA 10 C9 C3 D0 06 20 49 


12F0! 


CD CD CI 


CE 


C4 A0 


AD 


BE 


57 


1590: E9 08 80 05 68 68 6C 08 DD 


1058: 88 13 AC lA 10 C9 C9 D0 BS 


12FB! 


00 20 03 


13 


20 4E 


19 


AD 


D0 


1598: 03 CD 06 03 90 03 4C 9F 71 


10601 06 20 8C 15 4C lA 10 C9 23 


1300: 


54 C0 60 


AD 


05 03 


3S 


ED 


F9 


I5A0: 16 BD 05 03 AD 06 03 38 CD 


1068: CD D0 06 20 AE 15 4C lA E2 


1308: 


06 03 SD 


02 


03 4A 


4A 


4A 


E3 


15A8! E9 08 BD 06 03 60 AD 05 D5 


1070: 10 C9 CB D0 06 20 DE 15 15 


1310: 


18 69 02 


20 


5B FB 


AD 


02 


07 


15B0: 03 18 69 08 90 05 66 68 El 


107Bi 4C lA 10 C9 CA D0 06 20 A9 


131S: 


03 29 07 


SD 


02 03 


0A 


6D 


61 


ISBB: 6C 08 03 38 E9 01 CE 07 F6 


1080: FP 15 4C lA 10 C9 AB D0 £0 


1320: 


02 03 69 


05 


85 24 


AC 


05 


A0 


15C0i 03 CD 07 03 08 EE 07 03 FD 


1088! 11 20 41 19 20 22 16 A9 52 


1328: 


03 B9 00 


IF 


60 AD 


03 


03 


F2 


15C8: IB 69 01 28 90 0D BD 03 D4 


1090: 00 SD 05 03 SD 06 03 4C BB 


1330: 


8D 54 13 


AD 


04 03 


BD 


55 


0C 


15D0: 03 AD 06 03 IB 69 0H BD DC 


1098: lA 10 C9 AD D0 11 20 41 2A 


1338: 


13 A9 01 


8D 


5C 13 


A9 


13 


E0 


15D8: 06 03 60 4C 9F 16 AC 05 4B 


I0A0: 19 Z0 4C 16 A9 00 BD 05 AD 


1340: 


A0 50 20 


D9 


03 AD 


5D 


13 


09 


1SE0: 03 CB D0 05 68 68 6C 08 EE 


10A8: 03 BD 06 03 4C lA 10 C9 53 


1348: 


20 4E 14 


A9 


00 85 


48 


60 


56 


15E8: 03 CC 07 03 F0 04 98 4C ED 


10B0$ ce D0 06 20 BS 16 4C lA FC 


1350! 


01 60 01 


00 


00 00 


61 


13 


05 


15F0: 9F 16 8C 05 03 AD 06 03 30 


10BS! 10 C9 D4 D0 06 20 66 17 8F 


1358: 


00 IF 00 


00 


01 00 


00 


60 


AE 


15FB! 18 69 08 BD 06 03 60 AC 0D 


10C0: 4C ID 10 C9 C6 D0 06 20 92 


1360: 


01 00 01 


EF 


DB AD 


03 


03 


AC 


1600: 05 03 88 C0 FF D0 05 68 42 


10Ca: 19 19 4C lA 10 C9 Dl F0 23 


1368: 


BD 54 13 


AD 


04 03 


SD 


55 


44 


1608: 68 6C 08 03 CC 06 03 90 C9 


10D0: 03 4C lA 10 A9 00 85 22 44 


1370: 


13 A9 02 


8D 


SC 13 


A9 


13 


39 


1610: 04 98 4C 9F 16 BC 05 03 D7 


10D8I A9 IB S5 23 20 58 FC 20 33 


1378: 


A0 S0 20 


D9 


03 AD 


5D 


13 


41 


1618: AD 06 03 38 E9 08 SD 06 11 


10E0: 5C 15 C7 CF CF C4 C2 D9 5B 


1380! 


20 4E 14 


A9 


00 85 


48 


60 


6E 


16Z0: 03 60 AD 04 03 C9 0F F0 2A 


10E8: C5 A0 AD A0 D9 CF D5 A0 2E 


1388: 


20 DC 03 


95 


FD 84 


FC 


20 


CA 


1628: 07 EE 04 03 Z0 2D 13 60 80 


10F0S C3 CI CE A0 D2 C5 C5 CE 4F 


1390! 


58 FC A0 


00 


B9 AS 


13 


91 


5E 


1630! A9 00 80 04 03 AD 03 03 FA 


10FB: D4 C5 D2 A0 D4 CS D2 CF 98 


1398! 


FC C8 C0 


12 


D0 F6 


20 


D6 


22 


1638: C9 22 F0 07 EE 03 03 20 0A 


11001 D5 C7 ce A0 CI BD Bl B0 7A 


13A0: 


03 20 15 


14 


20 3S 


15 


60 


A0 


1640: 2D 13 60 A9 00 80 03 03 AD 


1108: B0 B0 C7 A0 C6 D2 CF CD A0 


13AB: 


06 00 00 


00 


00 01 


06 


00 


El 


1648: 20 2D 13 60 AD 04 03 F0 AC 


1110: A0 D4 CB C5 A0 CD CF CE D7 


13B0: 


00 00 00 


00 


00 93 


00 


00 


25 


1650: 07 CE 04 03 20 20 13 60 A0 


1118: C9 D4 CF D2 A0 CF D2 A0 06 


13BS: 


00 00 85 


FE 


20 4E 


19 


A9 


95 


1658: A9 0F 80 04 03 AD 03 03 E6 


1120: CI A0 CS CI CC CC A0 84 6F 


13C0: 


88 20 ED 


FD 


20 ED 


FD 


2C 


Bl 


1660: F0 07 CE 03 03 20 2D 13 D6 


1128: B0 B9 B6 80 C6 DZ CF CD AF 


13Ca: 


00 C0 10 


FB 


AD 00 


C0 


2C 


FB 


1668: 60 A9 22 80 03 03 20 2D DD 


1130! A0 C2 CI 1)3 C9 C3 8D BD CE 


13D0: 


10 C0 C9 


BD 


D0 0F 


A6 


FE 


50 


1670s 13 60 20 41 19 A9 13 20 0C 


1138: 8D 00 4C D0 03 20 58 FC FD 


13D8: 


20 44 F9 


A9 


A0 20 


F0 


FD 


5F 


1678: SB FB A9 0B 85 24 AD 03 22 


11401 20 5C 15 04 09 13 0B 03 lA 


13E0: 


A5 FE A2 


00 


60 C9 


A0 


D0 


2A 


1680: 03 20 BA 13 C9 23 B0 EA E5 


1148: 08 03 03 0B 20 13 05 03 IB 


13E8: 


0F A6 FE 


20 


44 F9 


A9 


A0 


20 


1688: BD 03 03 A9 16 85 24 AD F3 


1150! 14 0F 12 20 05 04 09 14 E2 


13F0: 


20 F0 FD 


A5 


FE A2 


01 


60 


62 


1690: 04 03 20 BA 13 29 0F C9 54 


1158! 0F 12 20 02 19 20 13 14 2E 


13FB; 


49 B0 C9 


0A 


90 0B 


69 


88 


C9 


1698: 10 B0 F0 80 04 03 60 85 62 


11601 05 16 05 20 0D 05 19 0C E7 


1400: 


C9 FA 90 


C3 


29 0F 


48 


A5 


D5 


16A0: FA 20 03 13 AA 20 44 F9 3C 


1168! 05 13 BD 2D 2D 2D 2D 2D FB 


140Si 


FE 0A 0A 


0A 


0A 85 


FE 


68 


E0 


16AB: A4 FA SC 05 03 20 03 13 79 


1170: 2D 2D 2D 2D 2D 2D 2D 2D 92 


1410: 


05 FE 4C 


BA 


13 A0 


0A 


Bl 


90 


16B0S 20 4E 19 68 68 6C 08 03 32 


11781 2D 2D ZD 2D 2D 2D ZD 2D 9A 


1418: 


FC C9 00 


D0 


01 60 


20 


56 


60 


16B8I A9 01 20 SB FD A9 00 85 BF 


11801 2D 2D 2D 2D 2D ZD 2D 2D A2 


1420: 


FC 20 5C 


15 


87 49 


6F 


4F 


3B 


16C0: 24 20 5C 15 60 6D 48 45 DA 


UBBl ZD 2D 2D 2D ZD 2D 2D 2D AA 


1428: 


60 45 52 


52 


4F 52 


BD 


SD 


AD 


16C8! 58 6D 53 50 41 43 45 60 ED 


1190! 2D 2D SD 00 A9 14 20 5B 7F 


1430: 


C8 C9 D4 


A0 


CI CE 


D9 


A0 


71 


1600: 42 45 54 57 45 45 45 4E 87 


119B1 FB 20 5C 15 2D 2D 2D 2D 43 


1438: 


CB C5 D9 


A0 


D4 CF 


A0 


C3 


E7 


1608! 60 45 41 43 48 7B 60 43 17 


HA0J 2D 2D 2D 2D 2D 2D 2D 2D C2 


1440: 


CF CE D4 


C9 


CE D5 


C5 


00 


94 


16E0! 6F 52 60 54 4F 60 45 4E 7F 



March 1987 COMPUTE! 109 



16ES 

ltF0 

l&FS 

1700 

170B 

1710 

171B 

1720 

1728 

1730 

173B 

1740 

1748 

1750 

1758 

i.7h0 

1768 

1770 

1778: 

17B0I 

17BB1 

1790 

179B 

17A0 

17AS 

17B0 

17B8 

17C0 

17C8; 

17D0 

17DB 

17E0 

17E8: 

17F0; 

17F8 

1800 

1808 

1810 

1B18 

1820 

lB2e 

1830 

1838 

1840 

1B48 

18S0 

1858 

1860 

IB&B 

1870 

187B 

iaS0 

1888 

1B90 

189B 

ieA0 

IBAB 

18B0 

IBBB 

iaC0 

1BC8: 

18001 

IBDB 

18E0 

IBEB 

1BF0 

ISFBi 

19001 

1908 

1910 

1918 

1920 

1928 

1930 

1938 

1940 

194B 

1950 

1958 

1960 

196B 

1970 

1978 



44 6D 
BE IB 
20 BA 
IF C9 
02 29 
07 18 
F0 FD 
BD 08 
20 DE 
16 A9 
85 24 
2D 2D 
2D 2D 
2D 2D 
2D 2D 
2D 2D 
20 5B 
5C 15 
48 49 
0E 16 

ce A9 

AS Cb 
20 38 
7F BD 
C9 D0 
4C D2 
FF 8D 
60 90 
9B 17 
98 17 
00 85 
A0 A0 
A0 A0 
A0 A0 
A0 A0 
A0 A0 
5B FB 
IS 6D 
6D 54 
60 44 
54 48 
4F 60 
00 A9 
85 24 
C9 BD 

05 03 
13 20 

06 C9 
AD 05 
BS 24 
BD 0B 
20 DE 
IB A9 
85 24 
2D 2D 
2D 2D 
2D 2D 
2D 2D 
2D 2D 
BE CC 
A0 00 
CB D0 
18 CA 
5B FB 
15 57 

59 6F 
C? CE 
10 C9 

07 C9 
A9 88 

60 fl9 
B5 24 
A0 C2 
BE 00 
05 03 
60 AD 
04 03 
4fl 4A 
69 30 
E9 09 
0F C9 
F0 FD 
F0 FD 



6D 00 
AC 05 
13 AC 
80 90 
7F 4B 
69 IF 
E0 00 
03 A9 
15 20 
01 20 
20 SC 
2D 2D 
2D 2D 
2D 2D 
2D 2D 
2D 2D 
FB A9 
68 46 
4E 47 
05 12 
CF D2 
AF C9 
15 C9 
0C 03 

08 A9 
17 C9 
0C 03 
07 C9 
A9 BB 

09 12 
24 20 
A0 A0 
A0 A0 
A0 A0 
A0 A0 
A0 A0 
A9 00 
6D 6D 

59 50 
41 54 

60 43 
4S 4E 
13 20 
20 BE 
F0 3D 
99 00 
4E 19 
A0 B0 
03 29 
68 20 
03 A9 
IS 20 
01 20 
20 5C 
2D 2D 
2D 2D 
2D 20 
2D 2D 
2D 2D 
IB A9 
B9 00 
F7 EE 
D0 EE 
A9 00 
52 49 
4E 69 
D0 05 
D9 F0 
A0 B0 
20 ED 
12 20 
20 5C 
D9 D4 
A9 00 
99 00 
03 03 
8D 0B 
4A 4fl 
20 F0 
20 F0 
0A B0 
4C 7A 
60 DB 



20 03 
03 B9 

05 03 

06 C9 
AD 05 
85 24 
F0 13 
16 8D 
48 12 
5B FB 
IS 2D 
2D 20 
2D 2D 
2D 20 
2D 2D 
00 60 
00 S5 
69 4C 
60 28 
13 05 
CD CI 
AF CE 
C6 00 
4C 02 
3F BD 
CE 00 
4C 02 
A0 B0 
20 ED 
20 5B 
5C 15 
A0 A0 
A0 A0 
A0 A0 
A0 A0 
00 A9 
85 24 
54 45 
45 60 
41 60 
6F 52 
44 6D 
5B FB 
18 20 
2D 0C 
IF 48 
68 C9 

02 29 

07 18 
F0 FD 
18 SO 
48 12 
SB FB 
IS 20 
2D 20 
20 20 
20 2D 
20 2D 
00 60 

08 8D 
04 99 
CC IB 
60 A9 
85 24 
54 45 
00 20 
68 68 
13 C9 

03 4C 
FD 4C 
5B FB 
IS CB 
C5 A0 
20 BA 
IF CB 
BD 0A 
03 60 
C9 0A 
FD 4C 
FD A5 
08 69 
19 E9 
D4 A0 



13 20 93 

00 IF B6 
99 00 78 
A0 B0 92 
03 29 A6 

68 20 94 
A9 EC 6E 
09 03 0E 
4C EC 02 
A9 00 14 
2D 2D E0 
2D 2D 6E 
2D 2D 76 
2D 20 7E 
2D 2D 86 
A9 12 CF 
24 20 16 
41 53 DS 
09 29 3A 
20 A8 92 
CC A0 5F 
A9 00 63 
08 A9 57 
17 C9 49 
0C 03 D6 

08 A9 AC 
17 C9 Al 
03 4C Eft 
FD 4C C7 
FB A9 77 
A0 A0 08 
A0 A0 0F 
A0 A0 17 
A0 A0 IF 
A0 A0 27 

01 20 8F 
20 5C 73 
5S 54 67 
49 4E 00 
57 49 82 
60 54 AE 
6D 60 CD 
A9 25 7A 
38 15 F2 
03 AC FE 
20 03 54 
80 90 71 
7F 48 21 

69 IF 2E 
A9 39 87 

09 03 78 
4C 39 79 
A9 00 6F 
2D 2D 3B 
2D 2D C8 
2D 2D D0 
2D 2D D8 
2D 2D E0 
A2 04 0E 
CF IB 37 
00 08 0F 
EE CF FB 

12 20 BE 
20 5C 4C 
60 6B 39 
3S 15 10 
4C lA C3 
80 90 4B 
F5 IB 9C 
F5 19 41 
A9 00 47 
C5 D8 IB 
AD AD 90 

13 AC B5 
D0 FA 99 
03 AD E6 
B5 FE 43 
B0 0B 08 
65 19 63 
FE 29 BA 
30 20 47 
09 20 6E 
A0 A0 47 



128 Editing 
Functions 

For 
Commodore 64 



Jim Allen 



This powerful programming aid 
makes all of the important Commo- 
dore 128 screen-editing functions 
available on the Commodore 64. 



If you own a Commodore 64, you 
may wish that you had the extra 
screen-editing functions available 
on the Commodore 128. With just 
two quick keystrokes, you can turn 
auto-insert mode on or off, clear 
selected portions of the screen, set 
and manipulate screen windows, 
move the cursor instantly to any 
location, and more. In the 128, 
these functions are called ESC (es- 
cape) functions because they are ac- 
tivated with the ESC key. "128 
Screen Editor" adds 14 ESC func- 
tions to the 64, plus a NO SCROLL 
key to prevent screen scrolling, and 
three new functions that aren't 
even available on the 128. It also 
allows all keys to repeat. 

Type in and save the program 
with the "MLX" machine language 
entry program found elsewhere in 
this issue. Be sure to read and un- 
derstand the instructions for using 



MLX before you begin entering the 
data for 128 Screen Editor. When 
you run MLX, you'll be asked for a 
starting address and an ending ad- 
dress for the data you'll be entering. 
Use the following values: 

Starling address: COOO 
Ending address: C3D7 

After you've finished entering all 
the data for 128 Screen Editor, be 
sure to save a copy to disk or tape 
before you leave MLX. 

This program loads wnth the 
command LOAD "filename", 8,1 
(replace filename with the name 
you used when entering the pro- 
gram with MLX, and replace the 
,8,1 with ,1,1 if you are using tape 
instead of disk). After the program 
has loaded into memory, type these 
commands in direct mode (without 
line numbers): 

NEW 
SYS 49152 

Don't forget to press RETURN 
at the end of each line. After you've 
entered the second command, the 
program sets the screen border to 
the same color as the background as 
a signal that it is active. 



no COMPUTH March 1987 



New Escape Functions 

Since the 64 lacks an ESC key, this 
program uses the back-arrow key 
(^) in its place. In the remainder of 
this article, the term ESC refers to 
the back-arrow key at the upper left 
corner of the keyboard. ESC func- 
tions require two keypresses: First 
you press and release the ESC key; 
then you press a second key. For 
instance, to delete a line, you press 
ESC and then D. 

If you change your mind after 
pressing ESC and decide not to per- 
form an ESC function, simply press 
a key that has no special ESC func- 
tion (a CRSR key, for instance). If 
you need to type the back-arrow 
character itself, press ESC twice in 
succession. A description of the 
ESC functions follows. 

Erase/Delete Functions 

ESC @ Clears the screen from the 
current cursor position to 
the bottom. 

ESC D Deletes the line the cursor 
is on, scrolls the screen up 
to fill that line, and places 
the cursor on the left screen 
margin. 

ESC F Erases from the start of the 
current line up to and in- 
cluding the current cursor 
position. 

ESC Q Erases from the current 
cursor position to the end 
of the current line. 

fl Erases from the line the 

cursor is on, including the 
current line, to the top of 
the screen or window. 

f3 Deletes the character under 

the cursor and moves the 
remainder of the line one 
space to the left. 

Insert Functions 

ESC A Turns on autoinsert mode, 
which allows you to insert 
printable characters with- 
out using the INST key. 
The cursor and other edit- 
ing keys work as usual. RE- 
TURN cancels autoinsert 
mode (this is not true on 
the 128). 

ESC C Cancels autoinsert mode. 
This works the same as 
ESC C on the 128. (Note, 
however, that some of 
Commodore's documenta- 



tion for the 128 confuses 
ESC C with the ESC O 
function.) 

ESC O Cancels insert and quote 
modes, allowing you to use 
cursor keys and other edit- 
ing keys after pressing 
INST or typing a quotation 
mark. 

ESC I Inserts a blank line at the 
current cursor position, 
scrolling the remainder of 
the screen down and plac- 
ing the cursor on the left 
edge of the display. 

Cursor Movement Functions 

ESC J Moves the cursor to the be- 
ginning of the line. 

ESC K Moves the cursor to the 
end of the text on the line. 

i7 Moves the cursor to the 

lower left comer of the 
screen. 

Miscellaneous Functions 

ESC T Sets the top of the window. 
Blocks the top portion of 
the screen from being 
erased or scrolled. The cur- 
sor position determines the 
top row of the new win- 
dow. To reset the window 
to the fuU screen size, press 
the HOME key twice. 

ESC V Scrolls the contents of the 
screen or window up one 
line. A new blank line will 
be scrolled in at the bot- 
tom, and the previous con- 
tents of the top line will be 
lost. 

ESC W Scrolls the contents of the 
screen or window down 
one line. A new blank line 
will be scrolled in at the 
top, and the previous con- 
tents of the bottom line will 
be lost. 

SHIFT Enables the NO SCROLL 
feature. The NO SCROLL 
key on the 128 lets you 
pause printing to the screen 
display (for instance, when 
you are listing a program). 
To pause a scrolling dis- 
play, press SHIFT or SHIFT 
LOCK. When you release 
the key, printing resumes. 

ESC Z Disables all 128 Screen 
Editor functions. You can 
reenable the ESC functions 



at any time with SYS 
49152. (On the 128, ESC Z 
clears all TAB stops, a func- 
tion not available in this 
program.) 

You should be aware that these 
functions affect logical lines, not 
physical screen lines. On the Com- 
modore 64, a physical line is always 
40 characters long, but a logical line 
can overlap two physical screen 
lines. Thus, for example, the ESC V 
function may scroll the screen up- 
ward two lines if the topmost logi- 
cal line in the current window is 
more than 40 characters long. 

The window function (ESC T) 
does not prevent you from moving 
the cursor above the window 
boundary with the cursor keys. If 
you venture above the boundary, 
strange results will occur. (If this 
happens accidentally, perform a 
warm start by pressing RUN/STOP- 
RESTORE; then restart the program 
with SYS 49152.) 

The delete-line function (ESC 
D) is intended for deleting a line 
which lies between two other lines. 
If you simply want to erase a line 
(particularly a line on the bottom 
screen line), use the ESC Q function. 

This program works by copy- 
ing BASIC and the Kernal ROM 
into underlying RAM and modify- 
ing them. It also modifies two im- 
portant vectors: IQPLOP at $306 
and IBASIN at $324. Locations $02, 
$B6, and $334-$338 are also used 
for various purposes. 



Quick Reference 



Function 



Keys 

ESC@ 
ESCD 
ESCP 
ESCQ 

tfl 
tf3 

ESC A 
ESCC 
ESCO 
ESCl 

ESC J 
ESCK 
tf7 

ESCT 
ESC V 
ESC W 
t SHIFT 
tESCZ 
t SYS 49152 

t different from Commodore 128 



Erase from cursor to end of screen 
Delete current line 
Erase from start of line to cursor 
Erase from cursor to end of line 
Erase from cursor to top of window 
Delete to right of cursor 

Enabie autoinsert mode 
Cancel auto-insert mode 
Cancel insert and quote modes 
Insert a line 

Move cursor to start of line 
Move cursor to end of line 
Move cursor to lower left comer 

Set top of window 
Scroll screen/window up 
Scroll screen/window down 
Pause scrolling 
Disable Editor 
Enable Editor 



March 1987 COfMPUTEl 111 



LQTT0 EIPHER. 



GtT THE BEST O&M OS ANV LOTTEIIV 
SIX NL-MBFJl . PICK FOLK ■ [JAILY CA.MF. 

> PflODLfCCl FOUR COUftNATlOMS OT 
HUUU'KS 10 CM>0»E FROM 

. jkKY AUOUHI OF ULLB AHO H>MtmiHi CMH 
K PnoaRAMMCO 

< piKHTa chjt ph»t lotto mummm emiwK 

»AST COM^UItM rtCKM. AND MjUUR HUM 
FRtQJfKCV LIST 

> RANOO«I NUHHH aEMCHArOM IMCLUPED 




"Window 



JC\»^U 



SUPER HlltEiOU71»MHlAWIsr.l> Ml l.TI OR MO^t)^OIJ;JR 



t (MAW 

• COLO" nauwral 



• WiPmON FLIP. AND aCHIKklNO WMDOWS 

■ ZOOM exFAMDI A WMDOVf TO [ffiUBLE fiJZf 

■ 1AVI ufi lOaD' i(XM ww[X]iw> oh P«I 

. MiMTS 0*1 ITUDAHO DOT UATHtl RnMnH 

• ClOM£ COLO** ATTRIBUTES 



> TY'U LETTER* AMD QHAPmCt 

- POLTflOM tHA#Sl^KMMD. IHmWK ANO BOTATE. THEN STAyp ANVWHIFE 
• ZOOM *L0T OtUktt 0*1 ilh tlt^ANMD WINOO* AND TDUfl OflAmNC AT THE 
SAMC Tml 

fit liC-U'l?! 



STOCK BROKER 



PHtinTS GL^HAMFKrjOk 
\01H MONtI BACK 

tuviHg aoou chjalit*. volatile rss^uet ahp 

UWHQ TtHI TRADma STSIEU WtU. NAVE VQU ^ULLV 
•iVIlTtDATrHeiOWHTfWClI AKOCOhVCR^WO 
TO Clttn At TMt ITDC' kEAR] 17} PEAK 

• TECHNICAL TRAOIMa That i^ORHl 

• IAN OJUPH FRHT-aLTll 

• MCORO UP TO «Ai STOCHl OH A DitK 




! l*.l.W l JlL)rii l Hj* 



tliti C-4AM» 



ACORN OF INDIANA, INC. 



1721 OHIO STREET 
MICHIGAN CITY. IN 46360 



219-879-2284 



ItHtPflNG ASD HANPtlNr.. ADll 41 SO - LO.D.'S Afil-^nEIl 
VIS* JLND M*STT-« CARD nHDEJLS ADD n 
INDIANA BtSIDFNTS ADD 5% 5aL£5 TAX 



AN OPPORTUNITY 
UNLIKE ANY OTHER 




The nation's largest computer 
camp offers all traditional camping 
activities and camaraderie in a 
beautiful setting. Your ctiild will tnave 
exclusive use of a major brand 
microcomputer tor at least 6 tiours 
every day. 

An experienced staff ratio of one to 
ttiree and a computer ratio of one to 
one uncaps tfie creativity of young 
people. Students receive tiands-on 
experience in robotics, graphics, 
lasers, sound, languages, telecom- 
munications and more. 

Complete details on the 1, 2, 4, and 
8 week coed sessions for ages 8-16 
are available in a free brochure. Call 
or writs for yours! 

Call (31 71 297-2700 or write 10 

MIDWEST COMPUTER CAMP 

9392 Lafayelle Road, Unil C4. Indianapolis. IN 46278 



To receive additional 
information from advertisers 

in this issue, use tiie 

Inandy reader service cards 

in the bacl< of the 

magazine. 



128 Screen Editor For 
Commodore 64 

Please refer to ttie "MLX" article in this issue 
before entering the following program. 



C000 
C008 
G0r0 
caia 

C020 

c02a 

C030 
C038 
C040 
C048 
C050 
C058 
C060 
C068 
C070 
C078 
C080 
C088 
C09O 
C093 
C0A0 
C0A8 
C0B0 
C0B8 
C0C0 
C0C8 
C0D0 
C0D8 
C0E0 
C0E8 
C0F0 
C0F8 
CT00 
C1.08 
C.1..1.0 
C.11.8 
CI 20 
CI 28 
CI 30 
C1.38 
C.1.40 
C.1.48 
C\50 
C.1.58 
C.160 

c.iee 

C.170 
C,178 
CI. 80 
CI 88 
C'90 
CI 98 
C,lA0 
C1-A8 
CI B0 
Cl.BB 
C1-C0 

ci.ce 

C1.D0 
C.1.D8 
C.l E0 
C.l- E8 
CIF0 
Ct. F8 
CZ00 
C208 
C2r0 
C2X8 
C220 
C228 
C230 
C2 38 
C240 
C24B 
C250 
C258 
C269 



!20 90 C3 

:34 03 A9 

;25 03 8D 

;25 03 AD 

;0A A9 C3 

:AD 06 03 

;8D 06 03 

r03 A9 C3 

;A0 00 20 

:AD C3 A2 

:A9 A6 8D 

;A9 B6 8D 

;T7 E9 A9 

I 58 AD 8A 

:80 8D 8A 

100 00 00 

;D3 85 CA 

:48 8A 48 

;3A E6 4C 

I 20 lA C3 

i78 C0 20 

|4B DO ED 

:78 C0 1-0 

iCl A2 FF 

:Fa D3 20 

:7a C0 C9 

;F0 C3 86 

:C0 C9 88 

;C9 85 D0 

1 86 D0 05 

iC9 0D 00 

D6 86 .19 

104 E4 02 

I 1.4 C3 4C 

:A6 02 20 

lOA 30 02 

:B1. Dl. 99 

;86 D6 20 

iPF E9 E8 

:C0 B9 00 

:F8 A6 02 

DA AC 7A 

:A9 7F 35 

;C3 A6 D6 

;60 A4 D3 

;D3 88 C8 

:C4 19 90 

;76 C3 20 

tF0 88 A0 

;C0 C3 Bl 

;88 10 F7 

;60 20 C0 

:D0 FA 60 

;F0 AF C9 

:F0 32 C9 

:F0 BD C9 

:F0 76 09 

:F0 6C C9 

:F0 B5 C9 

:D0 03 4C 

;98 4C 95 

;76 C3 20 

!A5 B6 85 

:A6 D6 8E 

:0D B5 D9 

:D9 CA BE 

!95 DA 86 

:EA E8 AE 

:Ea 86 02 

:86 B6 A6 

:C0 4C .1.4 

:20 .1.A C3 

:86 D0 05 

:C9 -I -I F0 

iC9 ID F0 

!20 D2 FF 

:D8 86 D4 



78 AD 

78 8D 

35 03 
06 03 
CD 07 
BD 37 
AD 07 
BD 07 
AD C3 
FF 86 
F6 E8 
F7 E8 
FD 25 
02 8D 

02 4C 
A5 99 
A5 06 
AS D0 
57 F.l. 
C9 5F 
A3 C.l. 
C9 -t.3 
05 A2 
BE 78 
,1.4 C3 
93 00 
-1.9 A2 
DO 03 

03 4C 
20 3F 
A.l 4C 
20 FF 
B0 F6 
98 CO 
FO E9 
AS 4F 

00 01 
65 E9 
20 F0 

01 91 
B5 DA 
C0 C0 
DB 95 
86 02 
84 19 
A9 20 
F6 C6 
EA E8 
00 84 
Dl C9 
F0 01 
C3 20 
20 lA 

50 F0 
5 7 F0 
44 F0 
4F F0 
4A F0 

51 F0 

36 C2 
CO 20 
E7 C2 

19 A5 
77 C0 
30 15 
77 C0 
B6 E8 
77 C0 

20 EA 
lA 86 
C3 FO 
C9 14 
20 3F 
0C 09 

04 C9 
00 DB 
86 C7 



24 03 

24 03 

A9 C0 

C9 49 

03 F0 

03 A9 

03 80 

03 A2 

A2 E0 

86 84 

ao 16 

A9 02 

0-1 85 

36 03 

80 A4 

DO 13 

85 C9 
FO 09 
20 .16 
00 0C 
C9 0D 
D0 18 
00 20 
C0 A6 
10 Dl 
0B A6 
18 4C 
4C 37 
F7 CO 
C3 10 
EA E5 
E9 CA 
A6 19 
20 76 
A0 27 
8C 7A 
88 10 
A6 02 
E9 AC 
Dl a a 
09 80 
27 FO 
DB 4C 
CA 86 
A0 00 
20 D2 
03 60 

4c sa 

03 60 

20 00 

C8 84 

3F C3 

C3 C9 

B3 C9 

CA C9 

32 C9 

6E C9 

B4 C9 

C3 C9 

AS 68 

99 CI 

4C 88 

02 85 

B5 DA 

09 80 

CA 09 

86 02 
CA 86 
E8 A5 
02 AE 
27 F0 
F0 7 3 
C3 10 
91 F0 
9D DO 
A2 00 
60 C9 



80 47 

AD 02 

80 B7 

D0 A5 

16 A2 

49 9D 

38 CC 

A0 21 

20 7B 

02 FF 

E9 05 

BD 00 

01 36 
A9 E7 
00 B4 
A5 30 
98 F9 
4C DC 
E7 OC 
EE 0B 
FO 00 
AE 19 
5B Al 

02 C2 
EE E5 
02 2B 
FB 28 
C3 C6 
C9 80 
AB 56 
A6 4F 
30 ,1 A 
20 AE 
C3 D0 
B5 50 
CO CI 
F8 67 
20 OO 
7A 50. 
10 8F 
95 17 

04 48 
88 2A 
B6 A9 
34 CF 
FF D2 
20 84 
C3 28 
20 C7 

05 26 
D3 72 
88 B6 
54 21 

40 FB 
56 84 

41 C6 
49 A6 
4B F6 
5A 0D 
68 6C 
20 80 
C3 37 
lA 91 
10 71 
95 IB 
80 3A 
20 D8 
B6 8F 
19 5F 
77 26 
3E 2C 
C9 7E 
F0 F9 
08 54 
0E 04 
86 9F 
5F A9 



C268: 

C270; 

C27B! 

C280; 

C28B: 

C2901 

C298: 

C2A01 

C2A8: 

C2B0! 

C2B8; 

C2C0; 

C2C8; 

C2D0! 

C2D8; 

C2E0; 

C2Eei 

C2F0I 

C2F8: 

0300 

C308 

C310 

C318 

C320 

C328 

C330 

C33a 

C340 

C348 

0350 

C358 

C360 

C368 

C370 

C378 

C380 

C3a8 

C390 

C398 

C3A0 

C3A8 

C3B0 

03 ua 

C3C0 
03C8 
03 DO 



00 27 
EC 20 
CI A9 
20 D2 
A6 D6 
60 C9 
48 A5 
85 04 
77 C0 
00 86 
34 03 
BD 25 
03 AO 

02 05 

03 80 
03 80 
77 C0 
03 EE 
18 20 
95 D9 
CE 77 
CE 77 
F0 FF 
02 FO 
A5 CE 
OF 20 
18 20 
20 20 
FF 48 
E4 FF 
F6 68 
82 CI 
C9 01 
68 A8 
FO FF 
B5 D9 
AE 77 
AD 20 
AD 21 
F0 04 
02 8D 

:19 A2 
DO F9 
;A0 27 
;C4 Di 
;4F 60 



20 lA 

CA CI 

90 20 

FF A9 

B5 09 

0D D0 

D4 8D 

A9 94 

85 04 

A9 14 

80 24 

03 AD 

38 03 

01 85 
8A 02 
20 00 
B5 OA 
77 00 
FF E9 
CA EO 
C0 2C 
C0 60 
A5 C6 
F7 78 
AE 87 

13 EA 

14 03 

02 FF 
98 48 
C9 83 
A8 68 
4C 80 
F0 EO 
68 6C 
8E 77 
30 03 
00 AO 
00 29 
DO 29 
SD 20 
20 DO 
20 Bt 
E6 lA 
A6 rj6 
F0 05 
00 00 



03 09 43 

10 C2 20 

02 FF A9 
20 20 02 
09 80 95 

03 4C 50 
77 00 A9 
20 D2 FF 
68 20 02 

00 F7 78 
03 AD 35 
37 03 BD 
80 07 03 

01 58 AD 
AO 79 CO 
4C 80 A4 
80 7 A CO 
EE 77 C0 
B5 09 09 

77 00 B0 
7A C0 30 
A0 00 18 
85 CC BD 
A5 CF F0 

02 AO 00 
40 B4 E5 
4C 98 OO 
A9 14 4C 
20 87 EA 
00 0F 20 
20 77 CI 
A4 AD 8D 
A9 00 85 
37 03 38 

C0 ac 78 

CE 77 C0 

78 00 10 
OF SD 79 
OF CO 79 
D0 60 AD 
60 86 lA 
19 91 19 
CA DO F4 
B5 OA 10 
90 01 60 



F0 82 

82 38 

94 70 

FF 80 

D9 BA 

C2 2E 

00 31 

AD 96 

FF 81 

AD BE 

03 49 

06 78 

A9 AA 

36 0C 

30 B9 

AE B8 

30 06 

A2 28 

80 08 

Fl 03 

03 E9 

4C 7C 

92 46 

0C C5 

84 9B 

A2 5C 

A9 82 

02 43 

20 8E 

F3 82 

20 93 

02 24 

06 60 
20 80 
C0 AB 
60 C5 
86 9 5 
CO 06 
CO 4F 
86 3F 
84 7 B 
08 96 
60 39 

07 E4 
AO FF 



00 00 00 00 18 



All the prograins in 

this issue are 

available on the 

ready-to-ioad 

COMPUTE! Disk. To 

order a one-year 

(four-disk) 

subscription, 

call toil free 

800-247-5470 

(In lA 800-532-1272). 

Please specify which 

computer you are 

using. 



112 COMPUTEI March 196? 



Amiga Banner 
Printer 



Here's a banner-printing program 
with an unusual twist. In addition to 
the usual Amiga characters, you can 
use any of the Amiga's disk-based 
custom character fonts. A dot-matrix 
or laser printer is required. 



This Amiga BASIC program allows 
you to construct and print a banner 
of enlarged letters using any of the 
13 fonts present on the Workbench 
disk. You can use any combination 
of fonts on the same banner. Pro- 
gram 1, the banner printing pro- 
gram, requires that two special files 
called graphics.bmap and diskfont. 
bmap be present on the same disk as 
the pfogram itself. The graphics, 
bmap file is included in the Basic- 
Demos folder on the Amiga Extras 
disk supplied with the computer 
(the disk which contains BASIC). 
The diskfont. bmap file is not includ- 
ed on disk; however, you can create 
a copy by running Program 2, (This 
program is taken from Advanced 
Amiga BASIC by Tom Halfhill and 
Charles Brannon, available from 
COMPUTE! Books.) Once you have 
both graphics.bmap and diskfont. 
bmap, you can copy them either to 
the same folder as Program 1 or to 
the LIBS folder of the same disk. 
(Once you've used Program 2 to 
create diskfont.bmap, you won't 
need Program 2 again except to cre- 
ate additional copies of that file.) 

Banner Construction 

When you run Program 1, it opens 
a window where you can construct 
a banner. The white area near the 
bottom of the window represents 
the printer paper, with the left edge 
of the display corresponding to the 
top edge of the printer paper. The 



Walter Bulawa 



small vertical line is the cursor. 

Letters that you type on the 
keyboard appear in the work area 
with the current character font. You 
can move the cursor to any position 
in the white work area by dragging 
it with the mouse pointer. The 
Mouse menu allows you to use the 
mouse for two other purposes as 
well — drawing and erasing pixels 
in the work area. This facility lets 
you add graphics to text or erase 
text that you wish to eliminate. 

The upper portion of the win- 
dow indicates which font is current- 
ly in use. To change fonts, simply 
choose the desired font from the 
Font Selection menu. Except for the 
Topaz fonts, which are contained in 
ROM, new fonts will be loaded 
from the Workbench disk. Once the 
program has found the font, it iden- 
tifies and displays the font on the 
screen. You may then type in the 
work area with that font. 

It is important to remember that 
the white area represents the banner 
as it will be produced on the printer. 
So, should you wish larger letters for 
the banner, use the Box Height 
menu to select a narrower height for 
the white area. The more you shrink 
the work area, the larger the charac- 
ters appear on the paper. Changing 
the work area's height always erases 
the work area completely. 

This program ordinarily uses 
the X character to form the banner 
characters. However, you can select 
a different printing character with 
the Change Printer Char option of 
the Action menu. Simply type the 
new character when prompted. 

Printing 

Once you have finished writing on 
the work area, choose the Print 



Banner option from the Action 
menu to print the banner. Make 
sure that the printer is connected 
and turned on before you take this 
action. It's also important that you 
use the correct printer driver for 
your printer. To check or change 
the printer driver, click on the Pref- 
erences tool from the Workbench 
and choose the Change Printer 
option. 

You can abort the printing at 
any time by pressing the ESC key. 
Prindng always begins at the left 
margin of the work area; to avoid 
wasting paper, it's usually best to 
locate the first character close to the 
left margin. If your banner message 
doesn't completely fill the text win- 
dow, the printer will print blank 
lines represendng the unused por- 
tion. To avoid wasting paper, you 
may want to press ESC to halt 
printing as soon as all of your mes- 
sage has been printed. 

When the banner is printed, 
the characters tend to look some- 
what stretched compared to their 
appearance on the screen. The 
Printer lines/display column op- 
tion allows you to correct for the 
stretching effect, depending on 
what height is selected under the 
Box Height menu. Good results can 
often be obtained by using a value 
about half as large as the default 
value. 

For instructions on entering these pfograms. 
please refer to "COMPUTEI's Guide to Typing 
In Programs" elsewhere in this issue. 

Program 1: Amiga Banner 
Printer 



DEFINT a-z-t 

LIBRARY "graphics. library"* 
LIBRARY "diskfont. library"-* 
DECLARE FUNCTION OpenDiskFontS. ( ) 



March 1967 COMPUTE) 113 



LIBRARY-* 

DECLARE FUNCTION OpenFontS: ( ) LIB 

RARY* 

DIM TextAttr&(l),FontName5{13),F 

ontSize{13)-* 

DIM choice(4)« 

xmin-=0 : xmax=615 :ymin=107 :yraax=18 

4!LpC%=l:CpL%=l* 

falae=0:true=-l:kwit=false* 

pen=l :choiceC2)=l :choice( 3)=4-t 

xe=70;ye='20-« 

PChar$="X"< 

MENU 1,0, I, "Action"* 

MENU 1,1,1," Print Banner"* 

MENU 1,2,1," Erase Box"* 

MENU 1,3,1," Change Printer Cha 

r"* 

MENU 1,4,1," Change Ptr lines/c 

ol"* 

MENU 1,5,1," Quit"* 

* 

MENU 2,0, 1, "Mouse"* 

MENU 2,1,2," Draw"* 

MENU 2,2,1," Erase"* 

MENU 2,3,1," Position cursor"* 

* 

MENU 3,0,1, "BOX Height"* 

MENU 3,1,1," 10 pixels"* 

MENU 3,2,1," 2fl pixels"* 

MENU 3,3,1," 40 pixels"* 

MESU 3,4,2," 80 pixels"* 

* 

MEKU 4,0,1, "Font Selection"* 

FOR i»=l TO 13* 

READ FontNarae5(i% ) , FontSize(i%)* 

MENU 4,i%,l," "+FontNarae5(i%)+S 

TR5CFontSize(i%))* 

NEXT i» * 

* 

' Set-up the Screen Display* 

COLOR 3,0* 

LOCATE 3,1: PRINT "Font:"* 

LOCATE 7,1 SPRINT "Printer charac 

ters"* 

PRINT "Printer lines/display col 

umn: "* 

COLOR 1,0* 

LOCATE 7, 20: PRIST PChar?* 

LOCATE 8, 30: PRINT LpC%* 

"Get Info on current font* 

Rpt=WIND0W(8)* 

CALL AskFont£.(Rp&,VARPTR(TextAtt 

r«i { ) ) ) * 

FontSize=TextAttrSi ( 1 ) \65536S!* 

FontNaine5=" topaz"* 

Font .Default«i=OpenFontSi(VARPTR(T 

extAttr6L(0)) )* 

Font . Acti ve&=Font . Defaults.* 

BaseLine=PEEKW( Rp&+62 ) * 

GOSUB Show, Example* 

GOSUB Erase. Box 'Display Banner 

Box* 

* 

' Main Loop* 

ON MOUSE GOSUB Mouse .Action : MOUS 

E ON* 

ON MENU GOSUB Menu.Request : MENU 

OS* 

4 

WHILE NOT kwit* 

cS=INKEY?* 

IP c5<>"" THEN* 

IF ASC(c?)=13 THEN* 

GOSUB Erase. Cursor* 

xc=xmin:yc=!yc+FontSize+3* 

GOSUB Yc. Check* 

GOSUB Hove. Cursor* 

ELSE* 

GOSUB Erase. Cursor* 

COLOR 2, 1* 

PRINT RIGHT?(c?,l);* 

xo=PEEKW(Rp& + 36) !yc=PEEKW( RpS.+38 

)* 

GOSUB Show. Cursor "display new o 



ursor* 

END IF* 

END IF * 

WEND* 

* 

Done : * 

COLOR 1,0* 

MENU RESET* 

CALL Cl03eFontE<(Rp&, Font. Actives 

)* 

CALL SetFont&(RpS., Font. Defaults.) 

* 

LIBRARY CLOSE* 

END* 

* 

Mouse. Action:* 

WHILE MOUSE(0)<>0* 

rax=MOUSE( 1) ;my-HOUSE( 2)* 

IF mx<xmin THEN mx=xmin* 

IF mx>xmax THEN mx-xmax* 

IF cursor. mode THEN 'Move 

cursor w/mouse* 

GOSUB Erase. Cursor* 

yc=my :xc=mx* 

GOSUB Yc. Check* 

GOSUB Move. Cursor* 

ELSE ' Draw 

w/mouse * 

IF my<ymin THEN ray=yinin* 

IF my>ymax THEN niy=ymax* 

PSET (mx,my),pen* 

END IF* 

WEND* 

RETURN* 

* 

Menu . Request :* 

mnu=HENU(0) : item=MENU{ 1)* 

IF choice(mnu) <>0 THEN MENU mnu, 

choice(mnu) , 1* 

choice ( mnu ) =item* 

MENU mnu, choice (ranu) , 2 * 

ON mnu GOSUB Menu. 1 .Menu. 2 .Menu. 

3 ,Menu . 4* 

c5=""* 

RETURN* 

* 

Menu. 1 :* 

ON item GOSUB Print . it, Erase . Box 

, Choose. PChnr, Choose. LpC, Quit* 

RETURN* 

* 

Menu. 2:* 

IF item=l THEN pen=2* 

IF item=2 THEN pen=l* 

cursor .raode=false* 

IF item=3 THEN cursor .raode=true* 

RETURN* 

* 

Menu. 3:* 

LINE {xmin,ymin)-(xmax,yraax) , 0,b 

f ' erase old box* 

BoxHeight%=10*2'' ( item-1 )* 

ymax=yniin+BoxHeight%-l* 

GOSUB Erase. Box 'display new bo 

X* 

LpC%=a0/BoxHeight% r CpL%»LpC%* 
CALL SetFontJ. ( Rpt , Font .Defaults. ) 

4 

COLOR 1,0 I LOCATE 3, 30: PRINT LpC% 

* 

CALL SetPontii(Rp6.,Font.Activei)* 

GOSUB Hove. Cursor* 

RETURN* 

4 

Menu.4;4 

F=a* 

TextAttrS. ( )»SADD( FontNameS ( item 

)+".font"+CHR5(0) )* 

TextAttrS. ( 1 )-FontSize ( item) *6553 

6&* 

IF itemO THEN* 

FS.-OpenFontSi ( VARPTR( TextAttrS, ( ) 

)) 'ROM fonts* 

ELSE* 

F&=0penDi8kFonts.{VARPTR(TextAttr 



6.(0))) 'Disk fonts* 

END IF4 

IF F5i = THEN RETURN* 

GOSUB Erase. Example sGOSUB Erase. 

Cursor* 

IF Font.ActiveiOB AND Font.Acti 

ve&oFont .Defaults. THEN CALL Clo 

3eFontSi( RpS., Font. Actives.)* 

Font . Act iveSi=F6i* 

FontSize=FontSize( item)* 

FontName5=FontNameS t item ) * 

CALL SetFont£,(Rp6., Font. Actives.)* 

Ba3eI,dne=PEEKW(Rp6,+62)* 

GOSUB Show. Example* 

GOSUB Yc. Check* 

GOSUB Move. Cursor* 

RETURN* 

* 

Choose. PChar:* 

CALL SetFontS. (RpS., Font. Defaultt) 

* 

COLOR 1,0:LOCATE I0,l!PRINT "Ent 

er new printer character; _"* 

c¥="" :WHILE c5="":c?=INKEY5:WEND 

* 

IF ASC(e?)>32 THEN* 

PChar$=cS* 

LOCATE 7, 20 5 PRINT PCharS* 

END IF* 

LOCATE 10,1: PRINT STRINGS ( 30 , 32) 

* 

CALL SetFontS. C RpS. , Font .Activei)* 

GOSUB Move. Cursor* 

GOSUB Delay* 

RETURN* 

4 

Choose. LpC:* 

CALL SetFonti(Rp6, Font. Defaults.) 

* 

COLOR 1,0: LOCATE 10, Is PRINT "Ent 

er lines/cols _"* 

cS=""iWHILE cS=""iC$=lNKEY5!WEND 

* 

IF VAL(c?)<LpC% AND VAL(c5)>0 TH 

EN* 

LpC%=VAL(cS)* 

LOCATE 8, 30 3 PRINT LpC»* 

END IF* 

LOCATE 10,1: PRINT STRINGS ( 30, 32 ) 

* 

CALL SetFontE.( RpS., Font. Actives.)* 

GOSUB Move. Cursor* 

GOSUB Delay* 

RETURN* 

* 

Choose. LpC:* 

CALt SetFontE.( RpS., Font. Defaults.) 

* 

COLOR 1,0:LOCATE 10,1: PRINT "Ent 

er lines/col: _"* 

cS="" : WHILE c$="" : c5«IBKEY5 :WEND 

* 

IF VAL(c5)<LpC% AND VAL(c$)>0 TH 

EN* 

LpC%=VAL{cS)'« 

LOCATE 8, 30: PRINT LpC** 

END IF* 

LOCATE 10.1 SPRINT STRING? ( 30 , 32 ) 

* 

CALL SetFonts,( RpS,, Font. Actives.)* 

GOSUB Move. Cursor* 

GOSUB Delay* 

RETURN* 

* 

Print, its* 

Prt . Stop=f alse* 

OPEN "PRT:" FOR OUTPUT AS #1* 

PRINT #l,CHR5(27)r "[0z"rCHR?(27) 

;"#3";* 

CALL SetFontS,( RpSi, Font. Defaults.) 

* 

COLOR 1,0: LOCATE 10 , 1 s PRINT" Pre s 

s ESC to Abort Print"* 

FOR x=xmin TO xroax* 

p5=""* 



TO CpL%:pS=pS+c5:NEXT* 
TO LpC4-< 



IF INKEY?=CHR5(27) THEN GOTO Pri 

nt . Done* 

FOR y=yma!t TO yinin STEP -1* 

IF POINT(x,y)<>l THEN* 

cS=PChar?-« 

ELSE* 

c5 = " •■* 

END IP* 

FOR i=l 

NEXT y* 

FOR 1=1 

PRINT #l,p5* 

NEXT i* 

NEXT X * 

Print. Done:* 

CLOSE #1* 

LOCATE 10,1: PRINT STRING? (30," " 

)* 

CALL SetFont&tRpS., Font. Actives)* 

GOSUB Move. Cursor* 

RETURN* 

* 

Erase. Box :* 

LINE (xmin,ymin)-Cxraax,ymax) , 1 ,b 

f* 

xc=xniin jyc=yniin+BaseLine* 

GOSUB Move. Cursor* 

RETURN* 

Quit:* 

kwitsttrue* 

RETURN* 

* 

Move. Cursor :* 

CALL moves ( RpSi, xc, yo)* 

Show. Cursor : * 

ytemp=yc-BaseLine* 

LINE (Kc,ytemp)-( xcytemp+FontSi 

ze-1) , 3* 

RETURN* 



Yc. Check:* 

yinn=ymin+BaseLine* 

IF yc<ymn THEN yc=ymn* 

yiiix=yraax-FontSize+BaseLine+I* 

IF yOyrax THEN yc=ymx* 

RETURN* 

* 

Erase . Example ; * 

COLOR 0,0* 

CALL moves ( Rp&, xe, ye) * 

CALL ClearEOL&(RpS)* 

RETURN* 

* 

Show. Example : * 

COLOR 2,1* 

CALL moves ( Rp6t, xe, ye) * 

c5=FontNameS+STRS (FontSize)* 

CALL TextS( RpS, SADD(c$ ) , LEN(o$) ) 

* 

RETURN* 

* 

Erase. Cursor :* 

yteiiipnyc-BaseLine* 

LINE ( xc,yterap)-(xc,yterap+FontSi 

ze-l),l* 

RETURN* 

* 

Delay:* 

FOR j*=l TO 1000: NEXT* 

RETURN* 

* 

FontTypes:* 

DATA- topaz, 8, topaz, 9* 

DATA diamond,12* 

DATA garnet, 9, garnet, 16* 

DATA ruby, 8, ruby, 12* 

DATA emerald, 20* 

DATA opal, 11* 

DATA sapphire, 14, sapphire, 15, sap 

phi re, 18, sapphire, 19* 



Program 2; Diskfont.bmap 
Filemaker 

' Diskf ontMaker* 

file5=" iBMAPS/Diskfont.bmap"* 

READ filesize, checksum* 

PRINT "Checking DATA statements. 

. .":PRINT * 

FOR i=l TO filesize* 

READ a?:a=VAL( "Sh"+a?)* 

check=check+a* 

NEXT i* 

RESTORE DiskFontData* 

IF checko checksum THEN PRINT "C 

hecksum mismatch — error in typ 

ing . " :END* 

PRINT "DATA Ok, creating the fil 

e. "* 

ON ERROR GOTO CreationError* 

OPEN file$ FOR OUTPUT AS #1* 

FOR i=l TO filesize* 

READ a?:a=VAL("Sh"+aS )* 

PRINT#l,CHRS(a):* 

NEXT i* 

CL0SE#1* 

PRINT "Finished."* 

END* 

CreationError:* 

PRINT "ERROR #";ERR:END* 

* 

DATA 34,3196* 

DiskFontData : * 

DATA 4F, 70, 65, 6E, 44,69,73,68,46, 

6F,6E,74,00,FF,E2,09* 

DATA 00,41,76,61,69,6C,46,6F,6E, 

74, 73, 00, FF, DC, 09, 01* 

DATA 02,00* 




CASINO 
CRAPS 



A computer program for the beginning or experienced shooter. 
C 64/128 APPLE II IBM PC DISK 

COMPUTER GAMBLING - "it's a MUST HAVE...' 

for aspiring or experienced craps players" 

ComplelEly simulates various casinos house rules and game variations 

Allows every betling opiior available on a casino craps lable 

Place • Buy • Hardway • Pass • Don't Pass 

Come • Don I Come • Odds • And Much Morel 

As advertised in Gambling Timesi ,_^_ 

Its the same as llie real ttiinqi ^!m 

Reviews Excellent' Highly Recommended' ^^M 
The 1st Complete Craps Program 

Only 51195 plus S3.00 shipping and handling 

Credi! cards, l-80O')43-2751 ext 58 24 Hour Service 

Check /Money Order to Casino Software 

505 Lewis, Rock Springs, WY 82901 



•^ 



f 

^i0traps 7X01 



1 XOI 

30TO t 

IS TO I 




PubWc Domain & User Supported Software 



NEW TOP TEN FOR COMMODOHE 64 

The M GOLD Ubran- S5.0WDISK 

i : 105 ARTIST SKETCHBOOK drawiiig pfograms 
rj tOS GREAT A^^ERICA^ NOVELISTS word 

processing 
[ I (07 PHONE CONNECTIONS communica lions 
n toe SPACE WARS space games 
n 109 DUNGEONS & DRAGONS text 

adventures 
I I 110 HOME ORCHESTRA instramenl 

simulation 
L 1 1 1 1 JUKE BOX pferecofde<l songs 
I 11 1 2 EINSTEIN S FAVORITES advanced math 
n 1 1 3 PONZOS TUTDR programming Irom 

BASIC to machine 
I I n't ELECTRONIC SECRETARY lilehandlins 

utilities 

NEW TOP TEN FOR IBM S6MIDISK 

PC-SIG Auihonzed Dealer 
Li 005 PC-FILE III, V!l labels, fomis. and more 
1 .1 07B PC-WRITE V 2 165 popular and powerlul 
L I 273 BEST UTIUTIES print spooler, lile 

search, mere 
[_ J 274 BEST GAMES pacliman. Prealioul. 

wizard, more 
C i 293 ARCADE GAMES (color graphics requiredl 
!_! 405 DESKMATE more than a sideldCk 
■L J 457 GREATEST ARCADE the best ol the 

best games 
[ I 52a NEW YORK WORD sopliisbcated wont 

processing, t ot 2 
I I 529 NEW YORK WORD 2 012 
i I 557 PIN8ALL ALLEY from simple to 

complei pinball games 

AdU S4 shipping 5 handlinij per order. CA residenls 
adij 6,5% sales lax 

Amouni enclosed S ' Check i VISA n MasterCard 

Card No 

Signalute . 

Phone I 

Name 

Address _ 
City 



NEW TOP TEN FOR APPLE SS.OOlDISK 

il 037 FREEWRFFER wordprocessor (Apple 

II r needs paddies) 
( I 038 BUSINESSHOME MANAGEMENT 

checkbook, calculator, more 
I 1 C39 BEST OF BUSINESS general ledger, 

payroll, much more 
L I 056 BANKn SYSTE M check balancer, wnte 

& print checks 
D 057 OMNI FILE data base with instructions 
[ 1064 BEST Of EDUCATION math dnils, 

spelling, lyprng. eic 
I ; 085 BASIC MATH DRILLS (ractrons. 

multiple choice, work problems 
I 1 1 18 GAMES last action space arcade games 
111 195 PASSIONS nude women, game 
I J 213 BEST UTIUTIES diskcat, krunch. 

diskchec*. drskmap, etc. 
NEW TOP TEN FOR MAC SSMWSK 
I 1 005 CODE CRACKING. FEDIT edit (lie 

blocks in ASCII or hex 
1 006 BesED and RcED edit menu bars. 

icons and ID numbers 
I 007 SWITCHER edi! multiple MicrosotI 

BASIC tiles 
I 1 029 COMMUNICATIONS Red Ryder . MacTep 
N 037 SUDE SHOW 
L 1 039 FONTS Font catalog 
[J 045 DESK ACCESSORIES Mmilinder. timer 
I 1 062 Cy^MES Dungeons of doom. baseball 
1 1 067 GAMES Billiards, volieybalt, juggling 
[ 1 086 BEST OF MAC Mi&tgM 86 
PUBLIC DOMAIN SOf IWARE EXCHANGE 
Auihonzed Dealer 

Gait toll tree 800-431-6249 
in Calif, 415-952-1994 



. Eip Dale . 



-Zip. 



BUCKSHIP 

COMPUTER SUPPLY 
F?0.- Box 883362 
San Francisco. CA 941BB 



Using PUT And GET 

On The IBM PC/ PCjr 



This tutorial for beginning BASIC 
programmers explains how to use 
PUT and GET for graphics on the IBM 
PC/PCjr and compatibles. The pro- 
gram requires a color /graphics card, 
color monitor, and BASIC on the PC 
and a color monitor and cartridge 
BASIC on the PCjr. 

IBM BASIC has two commands — 
PUT and GET — that make it easy for 
you to animate figures. These power- 
ful conunands appear frequently in 
games, but they have many other 
uses, as well. (PUT and GET are also 
used for random file operations, but 
with a different syntax.) 

Bit Pumping 

You might think of PUT and GET 
as "bit pump" operations which 
move bits from memory onto the 
screen (PUT) and from the screen 
into memory (GET), GET reads the 
colors of the points within a rectan- 
gular screen area and stores that 
information in an array. Here is the 
basic syntax for the command: 
GET [xl,yl)-lx2,y2), array 

Each GET command includes 
two pairs of screen coordinates and 
an array name. The coordinates de- 
fine the area to be captured and the 
array name tells BASIC where to 
store the image. The first pair of 
coordinates (xl and yl in this ex- 
ample) defines the upper left comer 
of the rectangle. The second pair (x2 
and j/2 in this instance) defines the 
rectangle's lower right comer. (This 
is identical to the method used to 
define a rectangle in a LINE com- 
mand with the B option.) 

The array used with GET must 
be of the numeric type. It can be 
any precision, although integer 
arrays are commonly used. Except 
for very small shapes, you must 



Rafael Gonzalez 

DIMension the array before using 
it. This task, in turn, requires that 
you calculate how big the array 
should be. Here is the BASIC for- 
mula for calculating the array size: 
4 -I- INT«x • bits per pixel + 7) / S) * y 

In this case, x and y are the 
lengths of the horizontal and verti- 
cal sides of the rectangle, respec- 
tively. The bits per pixel value is 
equal to 4 in low resolution, 2 or 4 
in medium resolution, and 1 or 2 in 
high resolution, depending upon 
the current screen mode. 

For example, suppose you 
want to capture a 10 X 12-pixel 
image in medium resolution with 
GET. The number of bytes required 
is 4 + INT((10 * 2 + 7) / 8) • 12, or 
40 bytes. Next, you must consider 
how many bytes each element of 
the array contains. This factor de- 
pends on the array's precision. The 
following table shows how many 
bytes are contained in each element 
of an integer, single-precision, or 
double-precision array. 
Number Of Bytes In Each Array Element 
Byles Array type 

2 integer 

4 single precision 

8 double precision 

Since the example shape re- 
quires 40 bytes, it can be stored in an 
integer array containing 20 elements, 
a single precision array containing 8 
elements, or a double precision array 
containing 5 elements. It's important 
to dimension an anay of the proper 
size, since BASIC stops with the error 
message Illegal function call if the 
array is too small. Using an overly 
large array doesn't do any harm. 
However, grossly overlarge arrays 
waste memory. 

The PUT command is the op- 
posite of GET: Once you have 
stored a shape with GET, PUT can 



place the shape anywhere on the 
screen. Here is the basic syntax: 
PUT (jf,y>, array, action 

In this example, x and y set the 
coordinates where the upper left 
comer of the image will be placed 
and the variable array identifies the 
array which contains the shape. 

The optional parameter action 
lets you select different modes for a 
PUT operation. This part of the 
statement may consist of the word 
PSET, PRESET, XOR, OR, or AND. 
If you omit the action parameter, 
PUT defaults to XOR mode (see 
below). 

Modes For PUT 

The PUT mode determines how the 
placed shape interacts with graph- 
ics data that's already present in the 
same screen area. Type in and save 
the example program, then run it to 
see how the mode affects PUT. The 
program draws a multicolored back- 
ground and PUTs the same shape 
on the screen in five different 
places, using all of the different 
modes. Here is an explanation of 
what each mode does. 

PSET. In this mode, PUT sim- 
ply stores the captured data on the 
screen, overwriting any graphics 
data that previously existed in the 
same area. In the example program, 
the transferred image completely 
replaces the contents of that screen 
area. 

PRESET. This mode replaces 
all existing data, just as in PSET 
mode, but the image is reversed. 
That is, a value of in the array 
causes the corresponding point on 
the screen to have attribute number 
3, and vice versa. A value of 1 in the 
array causes the corresponding 
point on the screen to have attri- 
bute 2, and forth. In the program. 



116 COMPUTH Morch 1987 



this mode causes the image to have 
a different color. 

AND. The AND mode sets 
pixels only at points that already 
contain data matching correspond- 
ing data in the transferred image. In 
the example program, only pixels 
that are originally cyan remain in 
the final image. 

OR. This mode superimposes 
an image onto existing data. 

XOR. The XOR mode is most 
often used for animation. When a 
pixel in the PUT image overlays a 
point on the screen that contains 
data, the point is inverted. This 
feature allows you to move a shape 
nondestructively over a complex 
background: When an image is PUT 
against a background twice, it re- 
stores the original data unchanged. 

The following table shows 
how AND, XOR, and OR modes 
affect screen attributes in medium- 
resolution mode (SCREEN 1 or 
SCREEN 4). 

Screen Attributes In AND, XOR, 

And OR Modes 

AND 



screen 


array value 
12 3 




1 
2 
3 



10 1 
2 2 
12 3 



OR 



screen 


array value 
12 3 




1 

2 
3 


12 3 

113 3 

2 3 2 3 

3 3 3 3 



XOR 



screen 


array value 
12 3 




1 
2 
3 


12 3 
X 3 2 

2 3 1 

3 2 10 



Animation With PUT 

The example program also demon- 
strates simple animation with PUT 
in XOR mode. After the five large 



shapes are drawn, it sends a small 
shape bouncing around the screen. 
The process of animation involves 
four basic steps: 

1 . Calculate a new position for the 
shape. 

2. PUT the shape on the screen at 
its previous location (to erase 
the old image). 

3. PUT the shape in its new 
position. 

4. Return to step 1. 

Before you enter the loop, you 
must have PUT the shape on the 
screen once, so that the PUT in step 
2 will erase it. This preliminary step 
is performed in line 440 of the pro- 
gram. Line 450 saves the old posi- 
tion of the shape in OLDX and 
OLDY before a new position is cal- 
culated in lines 460-490. 

BASIC animation with PUT al- 
ways involves a certain amount of 
flickering, which results from the 
delay between the time the old 
shape is erased and the new one is 
drawn. To minimize flicker, you 
should perform the two PUTs as 
close together as possible. This re- 
duces the amount of time that the 
shape is invisible. The example pro- 
gram accomplishes this by putting 
both PUT statements on the same 
line. The first statement in line 510 
erases the old image, and the second 
statement draws 9\e new one. The 
do-nothing loop in line 520 holds the 
new image on the screen for a short 
interval to alleviate flicker even fur- 
ther. Most programs won't need an 
explicit delay, since the program wUl 
be doing other time-consuming tasks 
between each redraw. 

Once you understand the ba- 
sics of GET and PUT, you may find 
many uses for these commands. A 
drawing program, for instance, may 
include a feature allowing you to 
copy one screen area to another. If 
you capture the indicated area with 
GET, it is effectively saved in an 
offscreen buffer, and can be re- 
placed at any time with a simple 
PUT command. In fact, if sufficient 
memory is available, you can even 
GET an entire screen. 

To see the effect of a full- 
screen GET, press any key while 
the small box is moving on the 
screen. The program saves the cur- 
rent screen in the array SCRN2%, 
then PUTs on the screen an image 



previously stored in the array 
SCRN1%. Immediately thereafter, 
it restores the current image by 
PUTting the SCRN2% image back 
on the screen. As you can see, sig- 
nificant delays result from manipu- 
lating images of this size. 

PUT And GET Demo 

For instructions on entering this program, 
piease refer to "COMPUTEI's Guide to Tvptng 
In Progfams" (n this issue of COMPutei. 

SI 100 SCREEN 1:KEY OFF: RANDOM I Z 

E TIHER 
CE 110 LINE (60, 60) -<120, 1201,1, 

BF 
PF 120 X-61sV-61 
D£ 130 BrTSPERPIXEL-2 
C« 140 NUM-4+INT( (XtBITSPERPIXEL 

+7)/a)tY 
ffl 130 DIM LARGEr.<NUM/2>, SMALL?. 

(NUM/4) 
6F 160 X=320iY"200 
C6 170 NUM-4 + INK (XtBITSPERPIXEL 

+7)/8)»Y 
nil 180 DIM SCRNlX(NUM/Z),SCflN27.( 

NUM/2) 
lU 190 SET (60,60) -(120, 120), LA 

RBEr, 
BC 200 GET (60,60>-(90,90), SM 

ALLX 
AA 210 CL5 
OS 220 FDR CaL=l TO 3 s FOR J-1 TO 

50 
JI 230 X=INT(RNDt319)!Y=INT(RND» 

199) 
BI 240 PSET <X,Y),COL!NEXTiNEXT 
Cf 250 GET (0,0)-(319, 199),SCRN1 

X 
FC 260 FOR J"40 TO 140 STEP 10 
Of 270 LINE (0,J) -<320,J+1),1, 

BF 
PP 280 LINE (0,J+2)-(320,J+3),2, 

BF 
BH 290 LINE (0, J+4) - (320, J+5) , 3, 

BF 
HP 300 NEXT 
CO 310 PUT (30,20), LARBEX, PS 

ET 
6H 320 PUT (120,20), LARGEX, PR 

ESET 
EH 330 PUT (210,20), LARGEX, AN 

D 
W 340 PUT (70,110), LARSEX, OR 
fJ 350 PUT (180,110), LARBEX, XQ 

R 
HB 360 LOCATE 2,6 : PRINT "PSET" 
KN 370 LOCATE 2,17 s PR I NT "PRESS 

T" 
LH 380 LOCATE 2,29 : PRINT "AND" 
OH 390 LOCATE 23, 13! PRINT "OR" 
l« 400 LOCATE 23, 26i PRINT "XOR" 
JC 410 X-10sY=50jDX-2:DY=2 
JP 420 RLrri-320-32iLLIM=0 
KD 430 ULIM=0!eLIM=200-32 
EH 440 PUT (X,Y), SMALLX 
PI 430 CM.DX-X ! DLDY-»Y 
KE 460 IF INKEY«<>"" THEN SET (0 

,«)-(319, 199) ,SCRN2XiPUT 

(0,0>,BCRNlX,ANOlPUT (0,0 

),9CRN2X,PSET 
Hit 470 Xi:X+DX 
ffl 480 IF X->RLI« OR X<-LLIM THE 

N DX— DX 
IS 490 Y-Y+DV 
HF 500 IF Y<-ULIM OR Y>-DLIM THE 

N DY— DY 
FJ 310 PUT ( OLDX, OLDY), SMALLX I PU 

T (X,Y), SMALLX 
ID 320 FOR J-0 TO 80: NEXT 
SL 330 SDTQ 430 & 



Morch 1987 COMPUm 117 



Superplotter 



Greg Perkins ond Derry Bryson 



This 3'D plotting program for the 
Commodore 64 can handle the difficult 
problem of removing hidden lines from 
two-dimensional representations of 
solid objects. A disk drive is required. 



As shown by the popularity of 
games using 3-D, people are inter- 
ested in and entertained by three- 
dimensional displays. "Super- 
plotter" is a program that plots 3-D 
equations with hidden-line remov- 
al and real perspective. Despite the 
complexity of those tasks — which 
require a lot of calculations — the 
program runs relatively quickly. 

Type in and save Programs 
1-3. Program 1 is the main pro- 
gram, Program 2 is a machine lan- 
guage routine used by the main 
program, and Program 3 is a BASIC 
program that displays picture files 
created by Program 1. Since Pro- 
gram 2 is written in machine lan- 
guage, it must be typed in using the 
"MLX" machine language entry 
program listed elsewhere in this is- 
sue. Read the MLX instructions 
carefully before you begin to enter 
the program. When you run MLX, 
you'll be asked for a starting ad- 
dress and an ending address for the 
data you'll be entering. Here are the 
addresses you need for Program 2: 



starting address: 
Ending address: 



CSOO 
C83F 



Using Superplotter 

To draw a picture with Superplot- 
ter, Programs 1 and 2 must both be 



in memory. First, load Program 2 
with a command like this: 
LOAD"ML",8,l 

Replace ML with the filename 
you used when you saved the Pro- 
gram 2 data with MLX. Type NEW 
and press RETURN; then load and 
run Program 1. Superplotter then 
asks you to enter the information it 
needs to draw the display. If the 
prompt following the request for 
information includes a blinking 
cursor, you'll need to press RE- 
TURN after your answer. If no 
blinking cursor appears, just press 
the appropriate key. After you've 
entered all the necessary infor- 
mation, the program waits for you 
to press any key to start the draw- 
ing process. When you've finished 
viewing the picture, press any key. 
You then have the option to run the 
program again, save the picture to 
disk, redraw the picture (perhaps in 
a different format), or quit. 

Program 3 allows you to dis- 
play pictures saved on disk without 
having to wait for them to be re- 
drawn. When you run this pro- 
gram, it asks for the name of the 
picture file you wish to display. If 
you enter a dollar sign ($) at the 
filename prompt, the program 
prints a directory of the current 
disk. Once the picture is on the 
screen, the program waits for you to 
press any key. 

Plotting New Stiapes 

The shape drawn by Superplotter is 
controlled by a function definition 
in the first line of the program (line 



of Program 1). To change the 
picture, use a different function def- 
inition. Here's a simple example; 
DEF FN F(X) = (X*X-I-Y*Y) 

The DEF FN statement creates 
a user-defined function which is 
used later in the program. The ex- 
pression to the right of the equal 
sign (=) is the part which you can 
change to modify the resulting 
shape. The equation must contain 
several items: a vantage point, x 
and y domains, a sampling resolu- 
tion, the method of screen scaling, 
and whether or not to draw with 
hidden-line removal. Here's an ex- 
planation of those terms. 

The vantage point is the point 
in space from which you wish to 
view the picture. Superplotter uses 
THETA, PHI, and RHO to define a 
point in a spherical coordinate sys- 
tem. In fact, they describe a line 
connecting that point and the origin 
(0,0,0). THETA is the angle of rota- 
tion about the 2-axis using the pr- 
axis as a starting point. PHI is the 
angle between the z-axis and the 
line. RHO is the distance from the 
origin to the point. RHO also deter- 
mines the amount of perspective. 
The closer the object seems to be, 
the more pronounced the perspec- 
tive effect. If your vantage point is 
inside the object, the picture 
usually becomes distorted beyond 
recognition. 

The X and y domains are the 
limits for x and }/ in this drawing. 
These values determine how much 
of the equation is actually plotted 
on the screen. 



118 COMPUnt Mafchl987 



The sampling resolution con- 
trols the number of segments or 
slices in each domain {x and y). This 
value tells Superplotter how many 
times it must sample the equation 
in order to draw the picture. 

Superplotter can scale (propor- 
tion) the picture on the screen in two 
different ways. Full-screen scaling 
stretches or squeezes the picture 
horizontally and vertically to fit ex- 
actly on the screen. One-to-one scal- 
ing plots the picture exactly in one 
dimension and adjusts the other di- 
mension to be in an exact one-to- 
one ratio with the first dimension. 
This results in truly representational 
plots for those concerned about 
mathematical accuracy. 




"Superplotter" for the Commodore 64 
can draw thousands of different 3-D 
shapes such as the one shown here. 

Hidden-Line Removal 

Superplotter also allows two meth- 
ods for drawing the picture: with or 
without hidden-line removal. This 
factor determines whether the pic- 
ture includes lines from surfaces on 
the opposite side of the object from 
your vantage point. If the hidden 
lines are removed, the object looks 
solid. If they are not, the represen- 
tation of the object lacks solidity, as 
if the object were constructed of 
wire. In most cases, you will want 
hidden-line removal so that objects 
look solid. If you wish to see hidden 
features, however, this feature can 
be defeated. 

For those who are interested, 
here is a description of how this 
program accomplishes hidden-line 
removal. The machine language 
line-draw routines constantly up- 
date a moving border to show the 
outside edges of the picture being 
drawn. Before plotting a point, the 
line-draw routine checks each point 
against this boundary. If the point is 
inside the boundary, the point is 



Bowl 

Function: X'X+Y*Y 
Eye: 30,50,200 
Domains: —4,4, — 4, — 4 
Segments: 10,10 
Scaling: Full screen 

StN of distance 

Function: SIN(SQR(X*X + Y'Y)) 

Eye: 30,75,200 

Domains: -11,11,-11,11 

Segments: 25,25 

Scaling: Full screen 

Thumbtack 

Function: COS(SQR(X-X-i-Y»Y))/(SQR(X*X-(-Y*Y) -hi) 
Eye: 25,89.5,200 
Domains: -8,8,-8,8 
Segments: 26,26 
Scaling: Full screen 

Spike 

Function; COS(SQR(X*X+Y*Y)/(10*SQR(X*X-I-Y'Y)-H) 
Eye: 30,89,200 
Domains: —2,2,^2,2 
Segments: 16,16 
Scaling: Full screen 

Modulation 

Function: 1 0/SQR(X'X + Y*Y)'SIN(5QR(X*X -I- Y'Y)rCOSfX/2) 
Eye: 60,70,200 
Domains: -15,15,-15,15 
Segments: 35,35 
Scaling: Full screen 

Cross section of SIN of distance 

Function: S1N(SQR(X*X-I-Y*Y)) 
Eye: 15,80,200 
Domains: -3,3,-3,0 
Segments: 20,10 
Scaling: Full screen 



not plotted. If the point is outside 
the border, it is plotted and the 
moving border is updated to ac- 
commodate the new point. By 
drawing the picture from front to 
back, the program insures that only 
visible lines are drawn. Rather than 
remove lines that have been drawn, 
the program actually prevents hid- 
den points from being plotted in the 
first place. 

Sample Equations 

Listed above are a few equations 
with parameters that produce inter- 
esting pictures. In each case you 
should substitute the first formula 
for the statement inside parenthe- 
ses in the first line of the program. 
In the Bowl example, for instance, 
replace the original function defini- 
tion with this statement: 
DEF FN F(X) = (X*X + Y*Y) 

The remainder of the infor- 
mation for each shape tells you 
how to respond to the program's 
prompts. 



Program 1: Superplotter 

For instructions on enfering triis program, 
please refer to "COMPUTEI's Guide 1o Typing 
in Programs" in this issue of cor^PUTEi. 

DF DEF FN F (X)=X*X+Y*Y 

AH 10 POKE53280,0:POKE53231,0: 

PRINTCHR$(14)"{CLR} iWHT} 

(10 SPACES }<<< SUPERPLOT 

TER >>>" 
JD 20 PRINT" tWHT) (niOWNl 

fl0 SPACES }3-p FUNCTION 

t SPACE ) PLOTTER E4 i " 
AX 30 MM=2304:PRIKT:POKE631,14 

4 
KG 40 POKE632,7X:POKE633, 111 :P 

OKE634 , 53 : POKE635 , 48 ; POK 

E636,13 :PQKE196,6:LIST-1 
JF 50 PRINT"i5il2 UP} 

16 SPACES} [DOWN]" 
CH 60 PRINT" (UPlENTER EYE COOR 

DINATES (THETA DEGREES, " 
HS 70 PRINT" (2 SPACES] PHI DEGR 

EES, RHO UNITS}"; :INPUTT 

H,PH,RH 
QH 80 IF TH>=360THENTH=TH-360: 

GOTO80 
BM 90 IF TH<0THENTH=TH+360:GOT 

090 
EE 100 IF PH>=360THENPH=PH-360 

:GOTO100 
XX 110 IF PH<0THENPH = PH + 360!GO • 

TO110 
PX 120 SH=SIK(TH*. 0174532778) : 
CT=C0S(TH*. 0174532778) : 
SP=SIN(PH*. 0174532778) 



iWarch 1987 COMPUTEI 119 



SC 130 CP=COS(PH*. 0174532778) : 

DI=RH 
XP 140 PRINT" [DOWN JENTER DOMAI 
NS OF X AND Y C>01IN, XM 
AX, " 
FR 150 PRINT"{2 SPACESjYMIN, Y 
MAX)"? :INPUTXS,XE,YS,YE 
HD 160 IF XS>=XE OR YS>=YE THE 
N PRINT" [3 UP] "; :G0T014 

MP 170 PRINT" {DOWN ]ENTER THE N 
UMBER OF SEGMENTS FOR E 
ACH" 
EK 180 PRINT "{2 SPACES JDOMAIN 
{SPACEHXSEGS, YSEGS)"; 
:INPUTSX,SY:SX=INT(SX) i 
SY=INT(SY) 
CQ 190 IF SX<=0 OR SY<=0ORSX*S 
Y>MM THENPRINT"{3 UP)"; 
:GOTO170 
FC 200 DIM PT(SY,SX,2) 
CM 210 PRINT "{DOWN) SCALE <0>NE 
-TO-ONE, OR <F>ULL SCRE 
EN? "; 
GE 220 GETSC5:IFSC$<>"0"ANDSC? 

<> "F"THEN220 
HG 230 PRINTSC5 
FH 240 PRINT" {DOWN) DRAW WITH 

{RVS}HIDDEN-LINE{OFFj R 
EMOVAL? (Y/N) "; 
QF 250 GETHL5:IFHL$<>"Y"flNDHL5 

<>"N"THEN250 
CJ 260 PRINTHL$ 
FF 270 PRINT" (2 DOWN ) jSi SAMPLI 

HG FUNCTION . . . " 
EB 280 IFPH<180THEN310 
JP 290 PH=360-PH:IFTH>180THENT 

H=TH-ia0:GOTO310 
FA 300 TH=TH+180 
QR 310 X1=XS:X2=XE:Y1=YS:Y2=YE 

:DX»1 :DY=1 
CP 320 IPTH>aANDTH<180 THENY1= 

YE:Y2=YS:DY»-1 
DK 330 IFTH<90ORTH>270 THENX1= 

XE:X2=XS:DX=-1 
GE 340 AY=-1 :FORLX=X1TOX2STEPD 
X*((XE-XS)/SX) :AY=AY+1: 
AX = -1 
RE 350 PRINT" {UP) {20 RIGHT )"SX 

-AY" [LEFT] {2 SPACES)" 
SM 360 F0RLY=Y1T0Y2STEPDY*((YE 
-YS)/SY) :AX=AX+1:X=LX:Y 
=LY: Z=FNF{X) : EX=-X*SH+Y 
*CT 
FP 370 EY=-X*CT*CP-Y*SH*CP+Z*S 
P:Ea=-X*CT*SP"Y*SH*SP-Z 
*CP+RH:X=DI*(EX/EZ) 
AG 380 Y=-DI* (EY/EZ ) :PT(AX,AY, 

1)=X:PT(AX,AY,2)=Y 
JX 390 IF AX=0ANDAY=0THENM1=X: 

M2=X:M3=Y:M4=Y 
DE 400 IFX>M1THENM1=X 
FF 410 IFX<M2THENM2=X 
QS 420 IFY>H3THENM3=Y 
GX 430 IFY<M4THENM4=Y 
PB 440 NEXTLY:NEXTLX 
KC 450 GOSUB940 : PRINT " {UP ) SCAL 
ING [SHIFT-SPACE ] RESULTS 

AD 460 IFSC$="F"THEN510 
CR 470 IFM1>M3THENM3=M1 
SR 480 IFM3>M1THENM1=M3 
XC 490 IFM2<M4THENM4=M2 
GC 500 IFM4<M2THENM2=M4 
MB 510 51 = 319/ (m-M2) :S2=-S1*M 

2:S3=199/(M3-M4) !S4=-S3 

*M4 
MP 520 FORLY»!0TOAYiPRINT"{UP] 

{18 RIGHT )"AY-LY" [LEFT] 

{2 spaces] ":FORLX=0TOAX 
EJ 530 PT{LX,LY,1}=INT( (S1*PT( 

LX,LY,l)+S2)+.5) 



CK 540 PTCLX,LY,2)=INTC(S3*PT( 
LX , LY , 2 ) +S4 ) + . 5 ) :NEXTLX 
:NEXTLY 

BA 550 G0SUB94a: PRINT" [up) 

{rvs] press any key to 

(space] DRAW " 
HK 560 GETK?:IFK?=""THEN560 
JB 570 GOSUB940:IFHLS="Y"THENS 

YS5S905 :GOTQ590 
MX 580 SYS50977 
FG 590 IFTH>180THENTH=TH-180:G 

OTO590 
EC 600 IPrH>90THEN630 
PR 610 IFTH>45THE1J700 
RQ 620 GOTO640 
KQ 630 IFTH<135THEN700 
ER 640 FORLY=OTOAY-1 :FORLX=0TO 

AX-1 
EH 650 SYS50630,PT(LX,LY,1),PT 

(LX,LY,2),PT(LX+1,LY,1 ) 

,PT(LX+1,LY,2) 
RS 660 SYS50630,PT(LX,LY,1 ),PT 

{LX,LY,2),PT(LX,LY+1,1 ) 

, PT ( LX , LY+1 , 2 ) : NEXTLX 
XP 670 SYS50630,PT(LX,LY,1),PT 

( LX , LY, 2 ) , PT ( LX,LY+1 , 1 ) 

,PT(LX,LY+1,2) :NEXTLY 
GK 680 FORLX=0TOAX-1 :SYS50630, 

PT(LX,Ly,l),PT{LX,LY,2) 

, PT (LX+1 , LY , 1 ) , PT ( LX+1 , 

LY,2) 
JK 690 NEXTLX :GOTO760 
FJ 700 FORLX=0TOAX-1 :FORLY=0TO 

AY-1 
a-\ 710 SYS50630,PT(LX,LY,1),PT 

(LX,LY,2),PT(LX,LY+1,1) 

,PT(LX,LY+1,2) 
JH 720 SYS50630,PT(LX,LY,1) ,PT 

(LX , LY , 2 ) , PT ( LX+1 ,LY, 1 ) 

,PT(LX+1,LY,2) :NEXTLY 
DP 730 SYS50630,PT(LX,LY,1),PT 

( LX , LY , 2 ) , PT ( LX+1 ,LY, 1) 

,PT(LX+1,LY,2) iNEXTLX 
ER 740 FORLY=0TOAY-1:SYS50630, 

PT(AX,LY,1) ,PT(AX,LY,2) 

,PT(AX,LY+1,1),PT(AX,LY 

+ 1,2) 
RK 750 NEXTLY 

MJ 760 GETK5:IFK?=""THEN760 
SR 770 SYS50448:PRINTCHRS( 14) : 
KA 780 PRINT" {UPj<R>UN, <^>AVE 

, RE<D>RAW, OR <Q>UIT7 

(SPACE]" 
MC 790 GETCH5:IFCHS<>"R"ANDCH? 

<>"S"ANDCH$<>"D"ANDCHS< 

>"Q"THEN790 
KH 800 IFCH$="S"THEN860 
MF 810 IFCHS="R"THENRUN 
SM 820 IFCH?="Q"THENPRINT"E71 

{CLR)";CHR$U42) ; sPOKES 

3280,14 !POKE53281,6:LIS 

T-1 
MR 830 GOSUB940:PRINT"(UP)DRAW 
WITH HIDDEN-LINE REMOV 

AL? (Y/N) " 
GE 840 GETHL$:IFHL$<>"Y"ANDHL5 

<>"N"THEN840 
SO 850 GOSUB940:GOTO570 
FA 860 GOSUB940:FI5="": PRINT" 

(UP) PICTURE FILENAME";: 

INPUTFI? 
QM 870 IF FI5=""THENGOSUB940:P 

RINT"[UP) ":GOTO7e0 
GG 830 GOSUB940jPRINT'"{UP]SAVI 

NG "FI5 
ES 890 OPEN2,8,2, "0!"+FIS+",P, 

W '■ : SYS5 1 1 97 iCL0SE2 :OPEN 

15, 8, 15: INPUT* 15, A, 85 :C 

LOSE15 
XS 900 GOSUB940:PRINT"{UP]"B?: 

IFB$="0K"THENPR1NT"{UP) 

":GOTO780 



DK 910 PRINT" (up) [23 RIGHT] (P 

RESS ANY KEY) 
BH 920 GETK5 :IFK5=""THEN920 
BK 930 GOSUB940:PRINT"(UP] "sGO 

TO7e0 
CQ 940 PRINT" (up) "; :F0RC=1T038 
:PRINT" {RIGHT] (DEL) "; :N 

EXTC :P RINT : RETURN 

Program 2: Machine 
Language Routine 

Please refer to the "MLX" article In this issue 
before entering the fotiowing iisting. 



C500 

C508 

C510 

C5ia: 

C520: 

C5 2a: 

C530: 

C538: 

C540 

C548 

C550 

C558 

C560 

C568 

C570 

C578 

C580 

C588 

C590 

C598 

C5A0 

C5A8 

C5B0 

C5B8 

C5C0 

C5C3 

C5D0 

C5Da 

C5E0 

C5E8 

C5F0 

C5F8 

C600 

C608 

C610 

C618 

C620 

C628 

C630 

C638 

C640 

C64a 

C650 

C658 

C660 

C668 

C670 

C67a 

C680 

C688 

C690 

C698 

C6A0 

C6A8 

C6B0 

C6B8 

C6C0 

C6C8 

C6D0 

C6D8 

C6E0 

C6E8 

C6F0 

C6F8 

C700 

C708 

C710 

C718 



A9 3B 

18 D0 
A9 IB 
18 D0 
A9 00 
A9 00 
C8 DO 
D0 F2 
C0 99 
00 C3 
98 29 
00 85 
FC 26 
85 FC 
;06 FC 
;06 FC 
;63 FC 
I 85 FD 
iFC 85 
;FD 18 
:A9 E0 
I 29 07 
:30 03 
:34 78 
:A2 37 
:AE 20 
il4 00 
;8D FB 
:B7 8E 
:A7 02 
!A9 00 
iA9 EE 
rAD A7 
iAA 02 
i8D AB 
;B7 C6 
:8D AA 
:8D AB 
:02 D0 
:A9 FF 
:AD A9 
:AC 02 
:02 10 
:A9 00 
:02 A9 
:02 20 
:02 00 
:FA 00 
:FB 00 
:10 19 
sia 6D 
:AB 02 
:4C 69 
:AC 02 
:ED AF 
:F0 08 
:FB 00 
:O0 E9 
:00 E9 
:C6 A9 
:99 00 
:99 41 
:F7 A9 
:CD C8 
:ai CD 
:11 CE 
:20 20 
:8D 6A 



8D 11 

A9 00 

8D 11 

A9 03 

85 FA 

A2 00 

FB E6 

A9 10 

00 CI 

C8 D0 

F8 85 

FD 06 

FD 18 

A5 FD 

26 FD 

26 FD 

85 FC 
18 A5 
FC A5 
A9 00 
65 FD 
49 07 
0A DO 

86 01 
86 01 
EB B7 
8D FA 
00 20 
A9 02 
AD 15 
8D AD 
8D aA 
02 38 
AD A8 
02 10 
38 A9 
02 A9 
02 4C 
OD AD 
8D AD 
02 38 
A9 00 
16 A9 
38 ED 

00 ED 
32 C7 
DO 11 
D0 09 
D0 01 
EE 02 
AD 02 
6D AE 
C6 38 
8D AD 
02 SD 
EE FA 
4C 69 

01 aD 

00 8D 

C7 A0 

CB C8 

CB 99 

3F 99 

A9 01 

C8 D0 

99 Al 

C5 20 

C6 A9 



D0 


A9 


08 


8D 


BC 


8D 


00 


DD 


60 


91 


D0 


A9 


15 


8D 


DE 


ao 


00 


DD 


60 


Dl 


A9 


E0 


85 


FB 


B8 


A0 


00 


91 


FA 


FF 


PB 


ES 


E0 


20 


A7 


A0 


00 


99 


00 


57 


99 


00 


C2 


99 


9A 


Fl 


60 


A4 


02 


47 


FE 


85 


FC 


A9 


9B 


FC 


26 


FD 


06 


E7 


A5 


FC 


65 


FE 


20 


69 


00 


85 


FD 


DE 


06 


FC 


26 


FD 


51 


98 


29 


07 


18 


7A 


A5 


FD 


69 


00 


76 


FA 


29 


F8 


65 


87 


FB 


65 


FD 


85 


EC 


65 


FC 


85 


FC 


85 


85 


FD 


A5 


FA 


30 


AA 


A9 


01 


CA 


EC 


FA 


A0 


00 


A2 


60 


11 


FC 


91 


FC 


F9 


58 


60 


20 


FD 


CE 


8E 


02 


00 


AD 


D6 


00 


AD 


15 


00 


A8 


FD 


AE 


20 


EB 


03 


AD 


14 


00 


BD 


8C 


00 


8D 


AB 


02 


59 


02 


aD 


AE 


02 


83 


C6 


BD 


B7 


C6 


12 


ED 


FA 


00 


8D 


FA 


02 


ED 


FB 


00 


6B 


19 


A9 


00 


8D 


8D 


00 


ED 


AA 


02 


E3 


00 


ED 


AB 


02 


0B 


40 


C6 


AD 


AA 


8F 


AB 


02 


DO 


08 


7E 


02 


8D 


AE 


02 


CC 


ED 


02 


00 


8D 


D7 


E9 


00 


8D 


AF 


FB 


CE 


8D 


8A 


C6 


C8 


AC 


02 


8D 


AC 


D5 


AF 


02 


8D 


AF 


88 


AD 


A9 


02 


CD 


A7 


AD 


A7 


02 


CD 


08 


AD 


A8 


02 


CD 


10 


60 


AD 


AE 


02 


4F 


00 


AD 


AA 


02 


70 


ac 


AD 


02 


AD 


30 


02 


8D 


AE 


02 


BA 


AD 


AD 


02 


ED 


21 


02 


AD 


AE 


02 


BF 


AE 


02 


A9 


EE 


F9 


00 


D0 


03 


EE 


47 


C6 


38 


AD 


FA 


D9 


FA 


00 


AD 


FB 


F8 


FB 


00 


4C 


69 


93 


00 


99 


00 


CA 


68 


D0 


F7 


A9 


00 


FA 


00 


CC 


C8 


D0 


3C 


81 


CC 


99 


81 


5A 


99 


81 


CC 


99 


EA 


EC 


A9 


00 


99 


91 


CE 


C8 


D0 


F7 


54 


00 


C5 


A9 


32 


0F 


C7 


8D 


6B 


C6 


8E 



120 COMPUTCl IVIarch 1987 



C720:6O 

C72a:4E 

C730:C6 

C738:17 

C740:CF 

C748:18 

C750:A0 

C758:A9 

C760:17 

C768;A5 

C770;C5 

C778:CF 

0780:85 

C78B:A9 

C790:02 

C798:A0 

C7A0:A5 

C7Aa:10 

C7B0:A5 

C7B8:17 

C7C0:A9 

C7C8i38 

C7D0:A5 

C7D8:90 

C7E0:CF 

C7E8:91 

C7FS:4E 

C7F8 :FE 

Ce00:C9 

0808:20 

C810:A9 

Cai8:78 

C820:01 

C828:02 

C830:E5 

C8 38:CC 



E6 



00 Fl 

FB Fl 



20 20 C5 
8D 6A C6 
60 A9 00 
30 FE CF 
A5 FA 85 
A9 CA 18 

00 A5 02 

01 8D FD 
AS 17 18 
18 69 01 

02 B0 09 
AS 02 91 
17 A9 CC 
81 18 65 

18 A0 
17 
17 

F0 0E A9 
FB 91 17 
A9 90 18 
01 6S 18 
A3 FA Fl 
FB C8 Fl 
10 F0 0E 
AS FB 91 
17 AD FD 
C5 AD FF 
CF 85 17 
FF A9 00 
20 D2 FF 
E0 85 FC 
86 01 
58 
E6 

AS FC C9 
FF 60 00 



31 
20 D2 
FC A5 



20 00 
A9 OS 
80 FD 
A5 18 
17 A5 
65 18 
Dl 17 
CF AS 
69 41 
85 la 
A9 01 
17 A5 
69 00 
17 85 
01 38 
8D FC 
0D FC 
01 3D 
88 A5 
65 17 
85 18 
17 8D 
17 00 
A9 01 
17 88 
CF F0 
CF 85 
60 A2 
20 02 
A9 00 
AJ3 00 
FB A2 
FF E6 
FB C9 
FF 00 
FF 00 



C5 A9 7E 
8D 6B E6 
CF AS lA 
80 FF 3C 
FB 85 AS 
85 18 D7 
B0 09 SA 
02 91 39 
85 17 BE 
Bl 17 15 
80 FD 74 

02 0A 10 
85 IS 09 

17 90 34 
AS FA 17 
CF C8 F0 
CF B0 5E 
FD CF E2 
FA 91 18 
35 17 7B 
A0 00 61 
FC CF 15 
FC CF 21 
8D FD IE 
A5 FA 7B 

03 20 05 

18 AD 41 
02 20 CF 
FF A9 Al 
85 FB 60 
A2 34 AO 
37 86 22 
FB D0 DO 
41 D0 C8 
OF 20 7D 
00 00 3C 



Program 3: Picture Display 

For instructions on entering tinis program, 
please refer to "COMPUTEi's Guide to Typing 
In Programs" In this issue of compute!. 

HB 10 IFX=0THEN2 

KK 14 GETK$ :IFK? = ""THEbI14 

EA 15 POKE53272,21 :POKE53265,2 

7:POKE53280,14 
GC 20 IKPUT"{CLR} (down} PICTUR 

E FILENAME";FI5:IF FI5=" 

?" THEN GOTO 50 
GM 25 OPEH2,8,2,FI5:CLOSE2 :OPE 

N15,3,1S :INPUT#15,A,B5:C 

L0SE15 : IFBS="OK"THEN30 
AD 26 PEUNTB$:ENO 
BK 30 PRINT"(CLR)":POKE53280,0 

:POKE5 3265,S9:POKE5327 2, 

29 
SS 31 FORO=1T024:PRINT"PPPPPPP 

PPPPPPPPPPPPPPPPPPPPPPPP 

PPPPPPPPP" ; jNEXTO 
SS 35 PRINT"PPPPPPPPPPPPPPPPPP 

PPPPPPPPPPPPPPPPPPPPP" ; : 

POKE202 3 , 16 :G0T01 60 
MM 40 REM *DIRECTORY ROUTINE* 
DP 50 OPENl ,8,0, "?0" 
XE 60 GET#1,A?,A? 
MH 70 GET#1,A§,A5 
XP 80 S=ST:IFS<>0THENCLOSE1 :G0 

TO 140 
CD 90 GET#l,LO?,HI? 
BG 100 LO=ASC(LO?+CHR5(0) ) :HI= 
ASC(HI5+CHR?(0) ) :LN=LO+ 
HI*256:LN$=MIDS(STRS(LN 
),-2) 
SE 110 PRINTLN?+" "; 
CM 120 GET#1,B9:IF B?="" THEN 
[SPACE J PRINT CHR5(13);: 
GOTO 70 
EC 130 PRINT B5;:G0T0 120 
KP 140 QPEN15,a,15 :INPUT#15,EN 
,EM$,ET,ES:CL0SE15:IFEN 
O0THENPRINTES; ES 
BG 150 X=1:GOTO10 
KO 160 X=l:LOADFI5,8,l @ 



Classified 



SOFTWARE 



FANTASTIC DAILY NUMBER FORECASTERI 

Not a R/N Gen. Guaranteed! Str. Hits. 
C/64, Ap, IBM, Atari. 1 Drive. OH add 3% 
SASE for info. S42.95 on Disk onlv to: 
Z-Way, PO Box 901 7-C, Canton, OH 44711 

IBM PUBLIC DOMAIN SOFTWARE $3 PER DISK. 
Send for free list. We have dbases/games/ 
spreadsheets/finance/educational/and more. 
For home or business. Disks are new DSDD. 
JDX/C P.O. Box 1561, Corona, CA 91718 

If you'd like information on the latest version of 
your software, please call or write: Batteries 
Induded Customer Support, 30 Mural St., 
Richmond Hill, Ontario, Canada L4B IBS 
(416) 881-9816 

COMMODORE: TRY BEFORE YOU BUY. 
Best selling games, utilities, educational, 
+ classics and new releases. lOO's of titles. 
Visa/MC. Free brochure. RENT-A-DISC, 
Frederick Bldg. #345, Hunfn, WV 25701 
(304) 529-3232 

FREE APPLE SOFTWARE 

Over 1000 Public Domain Programs on 50 
diskettes. $5 each plus $1 for shipping per order. 
Send Jl for catalog. Refundable with order. 
C&H ENTERPRISES 
PO [Jox 29243, Memphis, IN 38127 



^ 



,^^. 



H WIN S$ 

with our 

SPORTS 

Handicapping 

Software 

rHOBOUSHBRED/HARNESS HanoicapDing 5J<) 95 onhancec 
&49^£ GREYHOUND ManaicQoonQ &59 <J5. erhancefl S.d9Q5 
PRO roOTBML HQndicQWixl Swiem 539 95 5peCl^ aisk/ 
tape Apple ll-t-Ce Alon. IBM PC, COW 64/128. Tl. rnS-BD MoO 
3/4 Moa 100/200, Colof Add S ? post /hondl MC/VISA/COOs 
occaptK: Fres intofmat.on SOflWABE EXCMANSE, Boi 5332 
CP, W Bfocmrield, Mr <13Q33 orders 1.e0O-527,94a7 



TANDY 1000 PROGRAMS AND NEWSLETTER 
Send for free information on educational & 
entertainment programs & newsletter. Soda Pop 
Software, POB 653, Kenosha. WI 53141 

FREE SOFTWARE for C64, C128, IBM & CPM 
send SASE for info (specify computer) to: 
PUBLIC DOMAIN USERS GROUP, 
PO Box 1442-Al, Orange Park, FL 32067 

APPLE PUBLIC DOMAIN SOFTWARE (almost 
free) Send S2 for sample disk and catalog, 
(refunded w/order) Disks cost $2.50 and less. 
CAUDKE IND., Box 18477, KC, MO 64133 

DISCOUNT SOFTWARE for most computers. 
FREE CATALOG. Sale: 5.25" DSDD Disks 
25 for $13.95 ppd. WM( DATA SYSTEMS-C, 
4 Butterfly Dr., Hauppauge, NY 11788 

ATARI 8-BIT MANDELBROT FRACTALS! 32K/ 
48K on one disk. Fast! Easy! Intriguing! All 
graphic modes. Draw, Save, Load, Magnify 
fractal art. $9.95: GEiKWARE, Suite 204. 567 
Vauxhall St. Ext, Waterford, CT 06385 



ATTENTION T.I. 99/4A OWNERS 

• Over 1500 Accessories 
THE WORLD'S LARGEST 
COMPUTER ASSISTANCE GROUP 

Now serving over 35.000 members worltlwitie 

with the best in lachnicai assislertce, service, 

and products lor the Texas Instrument 99/4A 

To become a member and receive newsletters. 

catalog, technical assistance and membership I 

package, send $10.00 lor a ONE Year Member- } 

ship to: 99 /4A National AssUi Group 

National Headquarters 

P.O. Box 290812 

FL Lauderdale, Florida 33329 

Attetidon Membership Division 

For Inlormation Call (305) 583-0467 



TI-99/4A QUALITY SOFTWARE for Business, 
Home and Entertainment " Bonus Software 
Offer!" Send for FREE catalog to MICRO-BIZ 
HAWAII, BOX 1108, PEARL CITY, HI 96782 

TI-99/4A Software/Hardware Bargaitvs, 
Hard to find items. Huge Selection, 
Fast Service. Free Catalog. 
D.E.C., Box 690, Hicksville, NY 11801 

Evaluate IBM-PC Software. 
$3 per disk. Also Commodore. Send $1 to: 
GEMS, 1435 Painter Cir #5, St. Laurent, 
Quebec H4L3C4 Canada (514) 747-2561 

FREE! PUBLIC DOMAIN SOFTWARE! 
MS-DOS, IBM & Compatibles - Save $$$ 
@ $3.50 per disk! Free info: AP-JP Inc, 
P.O. Box 1155, W. Babylon, NY 11704 

CS4 AUTO DISK MENU/PROQRAM ijQADER. 

Fast, unprotected BASIC, menu driven, 1 stroke 
load & run. $18 ch/mo. SOUTHERN SYSTEM 
SERVICES, 1307 Krenek, Crosby, TX 77532 

ATARI OWNERS - QUALITY ACTION/ 
STRATEGY games low as S1.70 on disk only 
FREE catalog. Immediate delivery. M. Grossman 
Software, PO Box 66, Lannon, WI 53051 

AMIGA & C64 PUBLIC DOMAIN SOFTWARE 
Games, Utilities, Graphics, Sound & much 
more. For catalog send SASE & indicate 
machine. MCA, Box 5533, Katy, TX 77491-5533 

HEY AMIGOI PD soltware (or AMIGAI 

Games, Graphics, Utilities, More! Over 50 Disks 
Available. Only $5.95 ea! SASE for catalog. 
Amyware, PO Box 19474, Jacksonville, FL 32245 

CHEAP SOFTWARE FOR PC/MS-DOS/PCjr.,. 

Games, Business, Educational and Utility 
Disk. For catalog write: Morning Star, 
P.O. Box 3095, Ann Arbor, MI 48106 



MISCELLANEOUS 



SAFEWARE INSURES COMPLTreRS against 
fire, tl>eft, & power surges for as little as 
$39. Call Safeware, The Insurance Agency Inc. 
at 800/848-3469, Columbus, Ohio. 



COMPUTEI Classified is a low-cost way to tell over 350,0(K> microcomputer 
owners about your product or service. 

Rates: S25 per line, minimum of four lines. Any or all of the first line set in capital letters at no charge. AM 

$15 per line for boldface words, or S50 for the entire ad set in boldface (any numtwr of lines.) Inquire about 

display rates. 
Terms: Prepayment is retjuired. Check, money ortler. American Express, Visa, or MasterCard is accepted. 

Malic chcclcs payable to COMPUTE! Publications. 
Foim: Ads are subject to publisher's approval atid must be eititer typed or legibly printed. One line equals 40 

letters and spaces botwtwn words. Please underline words to t>e set in boldface, 
Getteral Informatton: Advertisers using post office twx numbers in their ads must supply permanent address 

and telephone numbers. Ad will appear in next available issue after receipt. 
ClOSllfg: loth of the third month preceding cover dale (e.c., June issue closes March 10th). Send order and 

remittance to; Ham Blair. Classified Manager, COMPUTE!, P.O. Bos 5406, Greensboro, NC 27403. To place 

an ad by phone, call Harry Blair at (919) 275-9809, 
Notice; COMPUTE! Publications cannot be responsible for offers or claims of advertisers, but will attempt to 

screen out misleading or questionable copy. 



Marcn 1987 COMPUTEI 121 



COMPUTE! 's 

Author's Guide 



Most of the following suggestions serve to improve 
the speed and accuracy of publication, compute! is 
primarily interested in new and timely articles on the 
Commodore 64/128, Atari, Apple, IBM PC/PCjr, 
Amiga, and Atari ST. We are much more concerned 
with the content of an article than with its style, but 
articles should be clear and well-explained. 

The guidelines below will permit your good ideas 
and programs to be more easily edited and published: 

1. The upper left comer of the first page should 
contain your name, address, telephone number, and 
the date of submission. 

2. The following information should appear in the 
upper right comer of the first page. If your article is 
specifically directed to one make of computer, please 
state the brand name and, if applicable, the BASIC or 
ROM or DOS version(s) involved. In addition, please 
indicate the memory requirements of programs. 

3. The underlined title of the article should start 
about 2/3 of the way down the first page. 

4. Following pages should be typed normally, ex- 
cept that in the upper right comer there should be an 
abbreviation of the title, your last name, and the page 
number. For example: Memory Map/Smith/2. 

5. All lines within the text of the article must be 
double- or triple-spaced. A one-inch margin should be 
left at the right, left, top, and bottom of each page. No 
words should be divided at the ends of lines. And 
please do not justify. Leave the lines ragged. 

6. Standard typing paper should be used (no eras- 
able, onionskin, or other thin paper) and typing 
should be on one side of the paper only (upper- and 
lowercase). 

7. Sheets should be attached together with a pa- 
per clip. Staples should not be used, 

8. If you are submitting more than one article, 
send each one in a separate mailer with its own tape 
or disk. 

9. Short programs (under 20 lines) can easily be 
included within the text. Longer programs should be 
separate listings. It is essential that we have a copy of 
the program, recorded twice, on a tape or disk. If your 
article was written with a word processor, we also ap- 
preciate a copy of the text file on the tape or disk. 
Please use high-quality 10 or 30 minute tapes with 
the program recorded on both sides. The tape or disk 
should be labeled with the author's name, the title of 
the article, and, if applicable, the BASIC/ROM/DOS 
version(s). Atari tapes should specify whether they are 
to be LOADed or ENTERed. We prefer to receive Ap- 
ple programs on disk rather than tape. Tapes are fairly 
sturdy, but disks need to be enclosed within plastic or 

122 COMPUTEI March 1987 



cardboard mailers (available at photography, station- 
ery, or computer supply stores). 

10. A good general rule is to spell out the num- 
bers zero through ten in your article and write higher 
numbers as numerals (1024). The exceptions to this 
are: Figure 5, Table 3, TAB(4), etc. Within ordinary 
text, however, the zero through ten should appear as 
words, not numbers. Also, symbols and abbreviations 
should not be used within text: use "and" (not &), 
"reference" (not ref.), "through" (not thru). 

!!• For greater clarity, use all capitals when refer- 
ring to keys (RETURN, TAB, ESC, SHIFT), BASIC 
words (LIST, RND, GOTO), and three languages 
(BASIC, APL, PILOT). Headlines and subheads 
should, however, be initial caps only, and emphasized 
words are not capitalized. If you wish to emphasize, 
underline the word and it will be italicized during 
typesetting. 

12. Articles can be of any length — from a single- 
line routine to a multi-issue series. The average article 
is about four to eight double-spaced, typed pages. 

13. If you want to include photographs, they 
should be either 5X7 black and white glossies or 
color slides. 

14. We do not consider articles which are submit- 
ted simultaneously to other publishers. If you wish to 
send an article to another magazine for consideration, 
please do not submit it to us. 

15. COMPUTE! pays between $70 and $800 for 
published articles. In general, the rate reflects the 
length and quality of the article. Payment is made 
upon acceptance. Following submission (Editorial De- 
partment, COMPUTE! Magazine, P.O. Box 5406, 
Greensboro, NC 27403) it will take from four to eight 
weeks for us to reply. If your work is accepted, you 
will be notified by a letter which will include a con- 
tract for you to sign and return. Rejected manuscripts 
are returned to authors who enclose a self-addressed, 
stamped envelope. 

16. If your article is accepted and you have since 
made improvements to the program, please submit an 
entirely new tape or disk and a new copy of the arti- 
cle reflecting the update. We cannot easily make revi- 
sions to programs and articles. It is necessary that you 
send the revised version as if it were a new submis- 
sion entirely, but be sure to indicate that your submis- 
sion is a revised version by writing, "Revision" on the 
envelope and the article, 

17. COMPUTE! does not accept unsolicited product 
reviews. If you are interested in serving on our panel 
of reviewers, contact the Review Coordinator for 
details. 



COMPUTEi's Guide 

To Typing In Programs 



Computers are precise — type the pro- 
gram exactly as listed, including neces- 
sary punctuation and symbols, except 
for special characters noted below. We 
have provided a special listing conven- 
tion as well as a program to check your 
typing — "The Automatic Proofreader." 

Programs for the IBM, TI-99/4A, 
and Atari ST models should be typed 
exactly as listed; no special characters 
are used. Programs for Commodore, 
Apple, and Atari 400/800/XL/XE 
computers may contain some hard-to- 
read special characters, so we have a 
listing system that indicates these con- 
trol characters. You will find these 
Commodore and Atari characters in 
curly braces; do not type the braces. For 
example, {CLEAR} or {CLR} instructs 
you to insert the symbol which clears 
the screen on the Atari or Commodore 
machines, A complete list of these sym- 
bols is shown in the tables below. For 
Commodore, Apple, and Atari, a single 
symbol by itself within curly braces is 
usually a control key or graphics key. If 
you see {A}, hold down the CONTROL 
key and press A. This will produce a 
reverse video character on the Commo- 
dore (in quote mode), a graphics char- 
acter on the Atari, and an invisible 
control character on the Apple. 

Graphics characters entered with 
the Commodore logo key are enclosed 
in a special bracket: \<A>^. In this case, 
you would hold down the Commodore 
logo key as you type A. Our Commo- 
dore listings are in uppercase, so shifted 
symbols are underlined. A graphics 
heart symbol (SHIFT-S) would be listed 
as S. One exception is {SHIFT- 
SPACE}. When you see this, hold down 
SHIFT and press the space bar. If a 
number precedes a symbol, such as {5 
RIGHT}, {6 S}, or [<8 Q>^, you would 
enter five cursor rights, six shifted S's, 
or eight Commodore-Q's. On the Atari, 
inverse characters (white on black) 
should be entered vnth the inverse video 



Atari 400/800/XL/XE 



When you see 

tCLEAR> 
tUP> 
{DOWN J 
tLEFTJ 

<:riqht> 

{BACK S> 
{DELETE} 
{INSERT> 
{DEL LIhE> 
{INS LINE> 
{TAB> 
{CLR TAB> 
{SET TAB> 
<BELL> 
{ESO 



Type 

ESC 
ESC 
ESC 

esc 

ESC 
ESC 
ESC 
ESC 
ESC 
ESC 
ESC 
EBC 
ESC 
ESC 
ESC 



SHIFT < 
CTRL - 
CTRL = 
CTRL + 
CTRL < 
DELETE 
CTRL DELETE 
CTRL INSERT 
SHIFT DELETE 
SHIFT INSERT 
TAB 

CTRL TAB 
SHIFT TAB 
CTRL 2 
ESC 



See 

If 
f 
* 
*■ 
■* 

a 
u 

E3 

► 
a 
a 



Clear Screen 
Cursor Up 
Cur SOT Down 
Cursor Left 
Cursor Right 
Backspace 
Delete character 
Insert ctiaracter 
Delete line 
Insert line 
TAB key 
Clear tab 
Set tab stop 
Ring buzzer 
ESCape key 



Commodore PET/CBM/VIC/64/1 28/16/+4 



When Ybu 
Read; 

{CLR! 

{HOME} 

{UP) 

{DOWN) 

{LEFT} 

{RIGHT} 

(RVS) 

{OFF) 

{BLK} 

{WHT) 

{RED} 

{CYN} 

{PUR} 

(GRNJ 

(BLU) 

{YEL} 



Press: 



See: 



SfflFTi 


aR/HOME 




CLR/HOME 


SHIFT 


1 CRSR J 



t CRSRi 


SHIFT «-CRSR — 


•-CRSR-* 


CTRL 9 


CTRL 


CTRL 1 


CTRL 2 


CTRL 3 


CTRL 4 


CTRL S 


CTRL 6 


CTRL 7 


CTRL 8 



□ 



\n 



m 



ss 



When Vbu 
Read: 

g7§ 

{Fl ) 
{ F2 } 
{ F3 1 

{H I 
{ FS} 
( K } 
{ F7) 
{FS} 
4 



Press: 



COMMODORE 1 


COMMODORE 2 


COMMODORE 3 


COMMODORE 4 


COMMODORE 5 


COMMODORE i 


COMMODORE 7 


COMMODORE 8 


fl 


SHIFT fl 


fl 


SHUT a 


(5 


SHIFr B 


r 


SHIFT f7 


^ — 



□ 



B 

■I 

□ 

■ ■ 



March 198? COMPUTE! 123 



key (Atari logo key on 400/800 models). 

Whenever more than two spaces 
appear in a row, they are listed in a 
special format. For example, {6 
SPACES} means press the space bar six 
times. Our Commodore listings never 
leave a single space at the end of a line, 
instead moving it to the next printed 
line as {SPACE}. 

Amiga program listings contain 
only one special character, the left ar- 
row (*■) symbol. This character marks 
the end of each program line. Wherever 
you see a left arrow, press RETURN or 
move the cursor off the line to enter 
that line into memory. Don't try to type 
in the left arrow symbol; it's there only 
as a marker to indicate where each pro- 
gram line ends. 

The Automatic Proofreader 

Type in the appropriate program listed 
below, then save it for future use. The 
Commodore Proofreader works on the 
Commodore 128, 64, Plus/4, 16, and 
VIC-20. Don't omit any lines, even if 
they contain unfamiliar commands or 
you think they don't apply to your com- 
puter. When you run the program, it 
installs a machine language program in 
memory and erases its BASIC portion 
automatically (so be sure to save sever- 
al copies before running the program 
for the first time). If you're using a 
Commodore 128, Plus/4 or 16, do not 
use any GRAPHIC commands while 
the Proofreader is active. You should 
disable the Commodore Proofreader 
before running any other program. To 
do this, either turn the computer off and 
on or enter SYS 64738 (for the 64), SYS 
65341 (128), SYS 64802 (VIC-20), or 
SYS 65526 (Plus/4 or 16). To reenable 
the Proofreader, reload the program 
and run it as usual. Unlike the original 
VIC/64 Proofreader, this version works 
the same with disk or tape. 

On the Atari, run the Proofreader 
to activate it (the Proofreader remains 
active in memory as a machine lan- 
guage program); you must then enter 
NEW to erase the BASIC loader. Press- 
ing SYSTEM RESET deactivates the 
Atari Proofreader; enter PRINT 
USR(1536) to reenable it. 

The Apple Proofreader erases the 
BASIC portion of itself after you run it, 
leaving only the machine language por- 
tion in memory. It works with either 
DOS 3.3 or ProDOS. Disable the Apple 
Proofreader by pressing CTRL-RESET 
before rurming another BASIC program. 

The IBM Proofreader is a BASIC 
program that simulates the IBM BASIC 
line editor, letting you enter, edit, list, 
save, and load programs that you type. 
Type RUN to activate. Be sure to leave 
Caps Lock on, except when typing low- 
ercase characters. 



Once the Proofreader is active, try 
typing in a line. As soon as you press 
RETURN, either a hexadecimal number 
(on the Apple) or a pair of letters (on the 
Commodore, Atari, or IBM) appears. 
The number or pair of letters is called a 
checksum. 

Compare the value displayed on 
the screen by the Proofreader vidth the 
checksum printed in the program list- 
ing in the magazine. The checksum is 
given to the left of each line number. 
Just type in the program a line at a time 
(without the printed checksum), press 
RETURN or Enter, and compare the 
checksums. If they match, go on to the 
next line. If not, check your typing; 
you've made a mistake. Because of the 
checksum method used, do not type 
abbreviations, such as ? for PRINT. On 
the Atari and Apple Proofreaders, 
spaces are not counted as part of the 
checksum, so be sure you type the right 
number of spaces between quote 
marks. The Atari Proofreader does not 
check to see that you've typed the char- 
acters in the right order, so if characters 
are transposed, the checksum still 
matches the listing. The Commodore 
Proofreader catches transposition er- 
rors and ignores spaces unless they're 
enclosed in quotation marks. The IBM 
Proofreader detects errors in spacing 
and transposition. 

IBM Proofreader Commands 

Since the IBM Proofreader replaces the 
computer's normal BASIC line editor, it 
has to include many of the direct-mode 
IBM BASIC commands. The syntax is 
identical to IBM BASIC. Commands 
simulated are LIST, LLIST, NEW, 
FILES, SAVE, and LOAD. When Hsting 
your program, press any key (except 
Ctrl-Break) to stop the listing. If you 
enter NEW, the Proofreader prompts 
you to press Y to be especially sure you 
mean yes. 

Two new commands are BASIC 
and CHECK. BASIC exits the Proof- 
reader back to IBM BASIC, leaving the 
Proofreader in memory. CHECK works 
just like LIST, but shows the checksums 
along with the listing. After you have 
typed in a program, save it to disk. 
Then exit the Proofreader with the 
BASIC command, and load the pro- 
gram as usual (this replaces the Proof- 
reader in memory). You can now run 
the program, but you may want to re- 
save it to disk. This will shorten it on 
disk and make it load faster, but it can 
no longer be edited with the Proofread- 
er. If you want to convert an existing 
BASIC program to Proofreader format, 
save it to disk with SAVE "filename", A. 



Program 1: Atari 
Proofreader 

By Charles Brannon, Program Editor 

100 GRAPHICS 

110 FOR 1=1536 TO 1700SREA 

D flsPOKE I,A:CK=CK+A!N 

EXT I 
120 IF CKO19072 THEN ? "E 

rror in DATA Statement 
Check Typing. "jEND 



130 
140 

150 

160 



fl = USR < 1536) 

? ;? "Automatic Proa-fr 

eadar Now Activated." 

END 

DATA 104,160,0,185,26, 

■» 201,69,240,7 

ITA 200,200,192,34,20 
243,96, 200, 169, 74 
iTA 153,26,3,200,169, 
153. 26. 3. 162 




Program 2: IBM Proofreader 

By Charles Brannon, Program Editor 

10 'Automatic Proofreader Vers 
Ion 3.0 (Lines 205,206 adds 
d/190 dBleted/470,490 chang 
ed from V2.0} 
100 DIM L» ( 500), LNUM( 500 >: COLO 
R 0,7, 7; KEY OFF:CLS:MAX=0! 
LNUM(0) =-65536! 
110 ON ERROR GOTO 120: KEY 15, C 
HR»(4)+CHR*(70):ON KEY (15) 
QOSUB 640; KEY (15) ON: GOT 
130 
120 RESUME 130 

130 DEF SEG=&H40tW=PEEK(«cH4A) 
140 ON ERROR GOTO 650: PR I NT: PR 

INT'Troo-f reader Ready. " 
150 LirvE INPUT L*sY=CSRLIN-INT 

(LEN(L»)/W)-1: LOCATE Y, 1 
160 DEF SEB=0:POKE 1050,30!POK 
E 1052, 34! POKE 1054,0; POKE 
1055, 79: POKE 1056, 13: POKE 
1057, 28s LINE INPUT L»:DEF 
SEB;IF L*="" THEN 150 
170 IF LEFT»CL*,1)=" " THEN L* 
»MID»(L»,2):B0Ta 170 



124 COMPUTtI March 1987 



180 IF VALCLEFT*(L*,2))=0 AND 
MID»CL»,3,1)=" " THEN L»=M 
ID»<L«,4> 

200 IF ASC<L*>>57 THEN 260 'no 
line number, there-fara co 
mm and 

205 BL=INSTR(L*, " "):IF BL=0 T 
HEN BL»=L»:ODT0 206 ELSE B 
L»=LEFT*(L», BL-1) 

206 LNUM= VftL ( BL* ) : TEXT*=M I D« ( L 
♦, LEN (STR* (LNUM) ) +1 ) 

210 IF TEXT«="" THEN GOSUB 540 

SIF LNUM=LNUM(P) THEN BDSU 

B S60:BDTD 150 ELSE 150 
220 CKSUM=0:FOR 1=1 TO LEN(L«) 

: CKSUM= (CKSUK+ASC <MID» (L* , 

I))«I) AND 255! NEXT: LOCATE 
Y, Is PRINT CHR«(65+CKSUM/1 

6 ) +CHR» C65+ ( CKSUM AND 15)) 

+" "+L» 
230 SOSUB 5405 IF LNUM(P)=LNUM 

THEN L«(P)«TEXT*iSDTO 150 

'replace line 
240 BOSUB 580: GOTO 150 'insert 

th« line 
260 TEXTt="":FOR 1=1 TO LENtL* 

):A=ASC<MID«(L»,I) ) s TEXT»= 

TEXT«+CHR«(A+32«(A>96 AND 

A<123) ):NEXT 
270 DELimTER=INSTR {TEXT*, " ") 

lCOMMAND*=TEXT«sARS*=""; IF 
DELIMITER THEN CDMMAND»=L 

EFT* (TEXT*. DELIMITER-1 ) : AR 

B»-MID« (TEXT*, DELIMITER+l ) 
ELSE DELIMITER=INSTR(TEXT 

t,CHR»C34)):IF DELIMITER T 

HEN CDMMAND*=LEFT* t TEXT* , D 

ELIMITER-l) :ARQ*=riID*(TEXT 

♦.DELIMITER) 
280 IF CDf1MflND»<>"LIST" THEN 4 

10 
290 OPEN "acrn; " FOR OUTPUT AS 

HI 
300 IF ARB*="" THEN FIRST=0-P= 

MAX-liQDTO 340 
310 DEL1MITER=INSTR CARS*, "-■'): 

IF DELIMITER=0 THEN LNUM=V 

AHARB*): BOSUB 540:FIRST=P 

:BOTD 340 
320 F I RST=VAL ( LEFT* ( ARS* , DEL I M 

ITER) ) :LflST=VAL< MID* CARS*, 

DELIMITER+l) ) 
330 LNUM=FIRST:GOSUB 540: FIRST 

=p!LNUM=LflST: GOSUB 540: IF 

P=0 THEN P-MAX-1 
340 FOR X=FIRST TO P:N«=MID»(S 

TR»(LNUM(X>),2)+" " 
350 IF CKFLAB=0 THEN A«="";60T 

370 

360 CKSUM=0:A*=N*+L*(X):FOR 1= 

1 TO LEN ( A* ) ; CKSUM= ( CKSUM+ 
ASC<MID»<A»,I))«I) AND 255 
: NEXT: A*=CHR* (65+CKSUM/l 6) 
+CHR* (65+ (CKSUM AND 15))+" 

H 

370 PRINT *1,A»+N»+L*(X) 

380 IF INKEY»<C>"" THEN X=P 

390 NEXT : CLOSE «l:CKFLA6=0 

400 GOTO 130 

410 IF CDMMAND»="LLIST" THEN O 

PEN "Iptl:" FOR OUTPUT AS 

#l:eOTO 300 
420 IF COMMAND»=" CHECK" THEN C 

KFLft6=l:B0TD 290 
430 IF CQMMAND«<>"SAVE" THEN 4 

50 

440 BOSUB 600: OPEN ARG* FOR OU 
TPUT AS #liARG»="":BOTO 30 


450 IF CD«MAND*<>"LOAD" THEN 4 
90 



460 GOSUB 600: OPEN ARO* FOR IN 

PUT AS «1:MAX=0!P=0 
470 WHILE NOT E0F(1):LINE INPU 

T #1,L«:BL=INSTR(L*, " "):B 

L*=LEFT* ( L* , BL- 1 > : LNUM ( P ) = 

VAL (BL*) : L* (P) =MID* (L», LEN 
(STR* ( VAL (BL*) ) ) +1 ) : P=P+ 1 : 

WEND 
480 MAX=P: CLOSE #1:E0T0 130 
490 IF COMMAND*="NEW" THEN INP 

UT "Erase program - Are ya 

u sure" jL*: IF LEFT«(L*,1)= 

"y" OR LEFT»(L»,1)="Y" THE 

N MAX=0: LNUM (0) =65536 ! : GOT 

O 130: ELSE 130 
500 IF COMMAND«="BASIC" THEN C 

OLOR 7, 0,0: ON ERROR GOTO 

!CLS:END 
510 IF CDMMAND*<>"FILES" THEN 

520 
515 IF ARG*="" THEN ARGS^-As" 

ELSE SEL=1; GOSUB 600 
517 FILES ARB*:GOTO 130 
520 PRINT"Syntax error"; GOTO 1 

30 
540 P=0: WHILE LNUM>LNUM(P) AND 

P<MAX:P=P+1: WEND: RETURN 
560 MAX=MAX-1 : FOR X=P TO MAX:L 

NUM(X)=LNUM(X+1) :L«(X)=L*( 

X+1): NEXT: RETURN 
580 MAX=MAX+1:FDR X=MAX TO P+1 
STEP -1:LNUM(X)=LNUM(X-1) 

sL*(X)=L»(X-l):NEXT;L»(P)= 

TEXT* : LNUM ( P ) =LNUM : RETURN 
600 IF LEFT*(ARG«,1)<>CHR»!34) 
THEN 320 ELSE ARG«=MrD»(A 

R6*,2) 
610 IF RIBHT»(ARG*,1)=CHR»(34) 
THEN AR8»=LEFT» { ARG* , LEN ( 

ARS«)-1) 
620 IF SEL=0 AND INSTR (ARB», ". 

")=0 THEN AR6»=ARG*+".BAS" 
630 SEL=0: RETURN 
640 CLOSE «l:CKFLAG=0:PRINT"St 

apped. ": RETURN 150 
650 PRINT "Error #"; ERR: RESUME 
150 

Program 3: Commodore 
Proofreader 

By Philip Nelson, Assistant Editor 

10 VEC=PEEK(772)+256*PEEK(773) 

:L0=43:HI=44 
20 PRINT "AUTOMATIC PROOFREADE 

R FOR ";:IF VEC=42364 THEN 

{SPACEjPRIKT "C-64" 
30 IF VEC=50556 THEN PRINT "VI 

C-20" 
40 IF VEC=35158 THEN GRAPHIC C 

LRsPRINT "PLUS/4 & 16" 
50 IF VEC=17165 THEN LO=45 :HI= 

46:GRAPHIC CLR!PRINT"128" 
60 SA=(PEEK(LO)+256*PEEK(HI))+ 

6:ADR=SA 
70 FOR J=0 TO 166: READ BYT:POK 

E ADR, BYT : ADR=ADR+1 : CHK=CHK 

+BYT:NEXT 
80 IF CHKO20S70 THEN PRINT "* 
ERROR* CHECK TYPING IN DATA 
STATEMENTS " : END 
90 FOR J=l TO 5: READ KF,LF,HF: 

RS=SA+RFsHB=INT(RS/256>iLB= 

RS-(256*HB) 
100 CHK=CHK+RF+LF+HF : POKE SA+L 

F, LB: POKE SA+HF, HB:NEXT 
110 IF CHKO22054 THEN PRINT " 

♦ERROR* RELOAD PROGRAM AND 



{ SPACE JCHECK FINAL LINE": EN 

D 
120 POKE SA+149,PEEK(772} :POKE 

SA+150,PEEK(773) 
130 IF VEC=17165 THEN POKE SA+ 

14, 22 SPOKE SA+18,23:POKESA+ 

29, 224 :POKESA+139 ,224 
140 PRINT CHR$(147) ;CHR$<17);" 

PROOFREADER ACTIVE": SYS SA 
150 POKE HI, PEEK { HI )+l: POKE (P 

EEK(LO)+256*PEEK(HI))-1,0:N 

EW 
160 DATA 120,169,73,141,4,3,16 

9,3,141,5,3 
170 DATA 88,96,165,20,133,167, 

165,21,133,168,169 
180 DATA 0,141,0,255,162,31,18 

1,199,157,227,3 
190 DATA 202,16,248,169,19,32, 

210,255,169,18,32 
200 DATA 210,255,160,0,132,180 

,132,176,136,230,180 
210 DATA 200,185,0,2,240,46,20 

1,34,208,8,72 
220 DATA 165,176,73,255,133,17 

6,104,72,201,32,208 
230 DATA 7,165,176,208,3,104,2 

08,226,104,166,130 
240 DATA 24,165,167,121,0,2,13 

3,167,165,168,105 
250 DATA 0,133,168,202,208,239 

,240,202,165,167,69 
260 DATA 168,72,41,15,168,185, 

211,3,32,210,255 
270 DATA 104,74,74,74,74,168,1 

85,211,3,32,210 
280 DATA 255,162,31,189,227,3, 

149,199,202,16,248 
290 DATA 169,146,32,210,255,76 

,86,137,65,66,67 
300 DATA 68,69,70,71,72,74,75, 

77,80,81,82,83,88 
310 DATA 13,2,7,167,31,32,151, 

116,117,151,128,129,167,136 

,137 

Program 4: Apple 
Proofreader 

By Tim Victor, Editorial Programmer 



76B TO 768 + 
C + As POKE I 



10 C = 0: FOR 1 

6S: READ A:C 

,A: NEXT 
20 IF C < > 7258 THEN PRINT "ER 

ROR IN PROOFREADER DATA STAT 

EMENTS": END 
30 IF PEEK (190 « 256> < > 76 T 

HEN POKE 56,0: POKE 57,3: CA 

LL 1002: GOTO 50 
40 PRINT CHR* (4) ; "IN#A«300" 
50 POKE 34,0: HOME : POKE 34,1: 
VTAB 2: PRINT "PROOFREADER 

INSTALLED" 
60 NEW 

100 DATA 216,32,27,253,201,141 
110 DATA 208,60,138,72,169,0 
120 DATA 72,189,255,1,201,160 
130 DATA 240,8,104,10,123,255 
140 DATA 1,105,0,72,202,208 
150 DATA 238,104,170,41,15,9 
160 DATA 48,201,58,144,2,233 
170 DATA 57,141,1,4,138,74 
1B0 DATA 74,74,74,41,15,9 
190 DATA 48,201,58,144,2,233 
200 DATA 57,141,0,4,104,170 
210 DATA 169,141,96 S 



March 1987 COMPUTH 125 



MLX 

Ottis Cowper, Technical Editor 



Machine Language Entry Program 
For Commodore 64 And 128 



"MLX" is a labor-saving utility that allows 
almost fail-safe entry of machine language 
programs. Included are versions for the 
Commodore 64 and 128. 

Type in and save some copies of which- 
ever version of MLX is appropriate for 
your computer (you'll want to use it to 
enter future ML programs from COM- 
PUTE!). Program 1 is for the Commodore 
64, and Program 2 is for the 128 (128 
MLX can also be used to enter Commo- 
dore 64 ML programs for use in 64 
mode). When you're ready to enter an 
ML program, load and run MLX. It asks 
you for a starting address and an ending 
address. These addresses appear in the 
artide accompanying the MLX-format 
program listing you're typing. 

If you're unfamiliar with machine 
language, the addresses (and aU other 
values you enter in MLX) may appear 
strange. Instead of the usual decimal 
numbers you're accustomed to, these 
numbers are in hexadecimal — a base 16 
numbering system commonly used by 
ML programmers. Hexadecimal — hex 
for short — includes the numerals 0-9 
and the letters A-F. But don't worry — 
even if you know nothing about ML or 
hex, you should have no trouble using 
MLX. 

After you enter the starting and end- 
ing addresses, you'll be offered the op- 
tion of clearing the workspace. Choose 
this option if you're starting to enter a 
new listing. If you're continuing a listing 
that's partially typed from a previous 
session, don't choose this option. 

A functions menu will appear. The 
first option in the menu is ENTER 
DATA. If you're just starting to type in a 
program, pick this. Press the E key, and 
type the first number in the first line of 
tiie program listing. If you've already 
typed in part of a program, type the line 
number where you left off typing at the 
end of the previous session (be sure to 
load the partially completed program 
before you resume entry). In any case, 
make sure the address you enter corre- 
sponds to the address of a line in the 
listing you are entering. Otherwise, you'll 
be unable to enter the data correctly. If 
you pressed E by mistake, you can return 
to the command menu by pressing RE- 
TURN alone when asked for the address. 
(You can get back to the menu from most 
optioiK by pressing RETURN with no 
other input.) 



Entering A Listing 

Once you're in Enter mode, MLX prints 
the address for each program line for 
you. You then type in all nine numbers 
on that line, beginning with the first two- 
digit number after the colon (:). Each line 
represents eight data bytes and a check- 
sum. Although an MLX-format listing 
appears sinular to the "hex dump" list- 
ings from a machine language monitor 
program, the extra checksum number on 
the end allows MLX to check your typ- 
ing, (Commodore 128 users can enter 
the data from an MLX listing using the 
built-in monitor if the rightmost column 
of data is omitted, but we recommend 
against it. It's much easier to let MLX do 
the proofreading and error checking for 
you.) 



Figure 1: 64 IVILX Keypad 



7 


8 


9 









4 
U 


5 
I 


6 
O 


F 
P 










1 
J 


2 
K 


3 

L 


E 








A 

M 


B 


C 

• 


D 

/ 




\ 


\ Space 





Figure 2: 128 MLX Keypad 



A 
(Fl) 


B 
(F3) 


c 

(F5) 


D 

(F7) 




7 


8 


9 


E 


4 


5 


6 


F 
(-) 


1 


2 


3 


E 

N 
T 
E 
R 





■ 



When you enter a line, MLX recal- 
culates the checksum from the eight 
bytes and the address and compares 
this value to the number from the ninth 
column. If the values match, you'll hear 
a bell tone, the data will be added to the 
workspace area, and the prompt for the 
next line of data will appear. But if MLX 
detects a typing error, you'll hear a low 
buzz and see an error message. The line 
will then be redisplayed for editing. 

invalid Ct\aracters Banned 

Only a few keys are active while you're 
entering data, so you may have to un- 
learn some habits. You do not type 
spaces between the columns; MLX 
automatically inserts these for you. You 
do not press RETURN after typing the 
last number in a line; MLX automatical- 
ly enters and checks the line after you 
type the last digit. 

Only the numerals 0-9 and the 
letters A-F can be typed in. If you press 
any other key (with some exceptions 
noted below), you'll hear a warning 
buzz. To simplify typing, 128 MLX re- 
defines the function keys and -i- and — 
keys on the numeric keypad so that you 
can enter data one-handed. In either 
case, the keypad is active only while 
entering data. Addresses must be en- 
tered with the normal letter and num- 
ber keys. The figures below show the 
keypad configurations for each version. 

MLX checks for transposed charac- 
ters. If you're supposed to type in AO 
and instead enter OA, MLX will catch 
your mistake. There is one error that 
can slip past MLX: Because of the 
checksum formula used, MLX won't 
notice if you accidentally type FF in 
place of 00, and vice versa. And there's 
a very slim chance that you could gar- 
ble a line and still end up with a combi- 
nation of characters that adds up to the 
proper checksum. However, these mis- 
takes should not occur if you take rea- 
sonable care while entering data. 

Editing Features 

To correct typing mistakes before fin- 
ishing a line, use the INST/DEL key to 
delete the character to the left of the 
cursor. (The cursor-left key also de- 
letes.) If you mess up a line really badly,- 
press CLR/HOME to start the line over. 
The RETURN key is also active, but 
only before any data is typed on a line. 
Pressing RETURN at this point returns 
you to the command menu. After you 



126 COMPUTEI March 1987 



type a character of data, MLX disables 
RETURN until the cursor returns to the 
start of a line. Remember, you can press 
CLR/HOME to quickly get to a line 
number prompt. 

More editing features are available 
when correcting lines in which MLX 
has detected an error. To make correc- 
tions in a line that MLX has redisplayed 
for editing, compare the line on the 
screen with the one printed in the list- 
ing, then move the cursor to the mis- 
take and type the correct key. The 
cursor left and right keys provide the 
normal cursor controls. (The INST/ 
DEL key now works as an alternative 
cursor-left key.) You cannot move left 
beyond the first character in the line. If 
you try to move beyond the rightmost 
character, you'll reenter the line. Dur- 
ing editing, RETURN is active; pressing 
it tells MLX to recheck the line. You can 
press the CLR/HOME key to clear the 
entire line if you want to start from 
scratch, or if you want to get to a line 
number prompt to use RETURN to get 
back to the menu. 

Display Data 

The second menu choice, DISPLAY 
DATA, examines memory and shows 
the contents in the same format as the 
program listing (including the check- 
sum). When you press D, MLX asks you 
for a starting address. Be sure that the 
starting address you give corresponds 
to a line number in the listing. Other- 
wise, the checksum display will be 
meaningless. MLX displays program 
lines until it reaches the end of the 
program, at which point the menu is 
redisplayed. You can pause the display 
by pressing the space bar. (MLX finish- 
es printing the current line before halt- 
ing.) Press space again to restart the 
display. To break out of the display and 
get back to the menu before the ending 
address is reached, press RETURN. 

Other Menu Options 

Two more menu selections let you save 
programs and load them back into the 
computer. These are SAVE FILE and 
LOAD FILE; their operation is quite 
straightforward. When you press S or L, 
MLX asks you for the filename. You'll 
then be asked to press either D or T to 
select disk or tape. 

You'll notice the disk drive starting 
and stopping several times during a 
load or save (save only for the 128 
version). Don't panic; this is normal 
behavior. MLX opens and reads from or 
writes to the file instead of using the 
usual LOAD and SAVE commands 
(128 MLX makes use of BLOAD). Disk 
users should also note that the drive 
prefix 0: is automatically added to the 
filename (line 750 in 64 MLX), so this 
should not be included when entering 



the name. This also precludes the use of 
@ for Save-with-Replace, so remember 
to give each version you save a different 
name. The 128 version makes up for 
this by giving you the option of scratch- 
ing the existing file if you want to reuse 
a filename. 

Remember that MLX saves the en- 
tire workspace area from the starting 
address to the ending address, so the 
save or load may take longer than you 
might expect if you've entered only a 
small amount of data from a long list- 
ing. When saving a partially completed 
listing, make sure to note the address 
where you stopped typing so you'll 
know where to resume entry when you 
reload. 

MLX reports the standard disk or 
tape error messages if any problems are 
detected during the save or load. (Tape 
users should bear in mind that Commo- 
dore computers are never able to detect 
errors during a save to tape.) MLX also 
has three special load error messages: 
INCORRECT STARTING ADDRESS, 
which means the fUe you're trying to 
load does not have the starting address 
you specified when you ran MLX; 
LOAD ENDED AT address, which 
means the file you're trying to load 
ends before the ending address you 
specified when you started MLX; and 
TRUNCATED AT ENDING AD- 
DRESS, which means the file you're 
trying to load extends beyond the end- 
ing address you specified when you 
started MLX. If you see one of these 
messages and feel certain that you've 
loaded the right file, exit and rerun 
MLX, being careful to enter the correct 
starting and ending addresses. 

The 128 version also has a CATA- 
LOG DISK option so you can view the 
contents of the disk directory before 
saving or loading. 

The QUIT menu option has the 
obvious effect — it stops MLX and en- 
ters BASIC. The RUN/STOP key is dis- 
abled, so the Q option lets you exit the 
program without turning off the com- 
puter. (Of course, RUN/STOP-RES- 
TORE also gets you out.) You'll be 
asked for verification; press Y to exit to 
BASIC, or any other key to return to the 
menu. After quitting, you can type 
RUN again and reenter MLX without 
losing your data, as long as you don't 
use the clear workspace option. 

The Finished Product 

When you've finished typing all the 
data for an ML program and saved your 
work, you're ready to see the results. 
The instructions for loading and using 
the finished product vary from program 
to program. Some ML programs are 
designed to be loaded and run like 
BASIC programs, so all you need to 
type is LOAD "filenante",S for disk 



(DLOAD "filename" on the 128) or 
LOAD "filename" for tape, and then 
RUN. Such programs will usually have 
a starting address of 0801 for the 64 or 
ICOl for the 128. Other programs must 
be reloaded to specific addresses with a 
command such as LOAD "file- 
name", %,l for disk (BLOAD "filename" 
on the 128) or LOAD "filename" ,1,\ for 
tape, then started with a SYS to a partic- 
ular memory address. On the Commo- 
dore 64, the most common starting 
address for such programs is 49152, 
which corresponds to MLX address 
COOO. In either case, you should always 
refer to the article which accompanies 
the ML listing for information on load- 
ing and running the program. 

An Ounce Of Prevention 

By the time you finish typing in the data 
for a long ML program, you may have 
several hours invested in the project. 
Don't take chances — use our "Auto- 
matic Proofreader" to type the new 
MLX, and then test your copy thorough- 
ly before first using it to enter any sig- 
nificant amount of data. Make sure all 
the menu options work as they should. 
Enter fragments of the program starting 
at several different addresses, then use 
the Display option to verify that the 
data has been entered correctly. And be 
sure to test the Save and Load options 
several times to insure that you can 
recall your work from disk or tape. 
Don't let a simple typing error in the 
new MLX cost you several nights of 
hard work. 



Program 1 : MLX For 
Commodore 64 

SS 10 REM VERSION 1.1: LINES 8 
30,950 MODIFIED, LINES 4 
85-487 ADDED 

EK 100 POKE 56,50:CLR:DIM IN?, 
I,J,A,B,A|,B$,A(7),NS 

DM 110 C4=48:C6=15:C7=7:Z2=2:Z 
4=254 :ZS=255:Z6=256sZ7= 
127 

CJ 120 PA=PEEK(45)+Z6*PEEK(46) 
:BS=PEEK{55)+Z6*PEEK(56 
) :K$="0123456789ABCDEF" 

SB 130 R5=CHR?(13):L$="{LEFT)" 
:S5=" ":D$=CHR$(20):ZS= 
CHR5{0)tT?="{13 RIGHT}" 

CQ 140 SD=54272;FOR I=SD TO SO 
-H23:POKE 1 , :NEXT: POKE 
[SPACE3SD+2 4,15:P0KE 78 
8,52 

FC 150 PRIHT"fCLR}"CHR$(142)CH 
R?(8):P0KE 53280, 15:P0K 
E 53281,15 

EJ 160 PRIHT T5" [REDlfRVS} 
{2 SPACES lis @3 
(2 SPACES} "SPC( 28)" 
t2 SPACES }{ OFF } (BLU) ML 
X II [REDJlRVSj 
(2 SPACESj"SPC(28)" 
{12 SPACES) {BLU}" 
FR 170 PRINT" {3 DOWN} 

{3 SPACES}C0MPUTE1 'S MA 



Morch 1987 COMPUTEI 127 



CHINE LANGUAGE EDITOR 
{3 DOWN}" 

JB 180 PRINT" {BLK} STARTING ADD 
RESSE4i",-:GOSUB300:SA=A 
D:GOSUB1040:1F F THENIS 


GF 190 PRINT"(BLK) (2 SPACESjEN 
DING ADDRESS§43"; SGOSUB 
300 : EA=AD: GOSUB1030 : IF 
( SPACE }F THEN190 

KR 200 INPUT" {3 DOWN) {BLK) CLEA 
R VroRKSPACE [Y/n3§43";A 
$:IF LEFT5(AS, 1 )<>"Y"TH 
EN220 

PG 210 PRINT" (2 DOWN 1 ( BLU ] WORK 
ING . . . " ; :FORI=BS TO BS+ 
EA-SA+7:P0KE I,0:NEXT;P 
R I NT "DONE" 

OR 220 PRINTTAB(10) "(2 DOWN) 
(BLK){RVS) HLX COMMAND 
{SPACE)MENU {DOWN)Mr": 
PRIKT TS"(RVS)E{0FF}NTE 
R DATA" 

BD 230 PRINT T$ " { RVS}D{0FP} ISP 
LAY DATA": PRINT T?" 
(RVS}L(0FF)0AD FILE" 

JS 240 PRINT TS"[RVS)S{0FF)AVE 
FILE":PRIMT TS"[RVS}Q 

{0FF]UIT(2 down!{blk)" 
JH 250 GET A?: IF A?=N? THEN250 
HK 260 A=ei:FOK 1=1 TO 5: IP A?= 

MIDS("EDLS0".I,1)THEN A 

=1:1=5 
FD 270 NEXT:ON A GOTO420, 610, 6 

90, 700 , 280 JGOSUB1060 : GO 
, TO250 
EJ 280 PRINT" {RVS) QUIT ":INPU 

T"fDOWN)E4iARE YOU SURE 
[Y/N]";AS:IF LEFT$(AS. 

1)<>"Y"THEN220 
EM 290 POKE SD+24,0:END 
JX 300 IN$=N5:AD=0:INPUTIN?:IP 

LEN ( INS > <> 4THENRETURN 
KF 310 B?'«INSsGOSUB320:AD=A:B? 
. =MIDS(IN$,3) :GOSUB320:A 

D=AD* 2 56+A : RETU RN 
PP 320 A=0:FOR J=l TO 2:A5=MID 

S ( B$ , J , 1 ) : B=ASC ( AS ) -C4+ 

(A5> "@" ) *C7 :A=A*C6+B 
JA 330 IF B<0 OR B>15 THEN AD= 

0:A=-1;J=2 
GX 340 NEXT: RETU Rt5 
CH 350 B=INT(A/C6) :PRINT MID5( 

H$,B+1,1) ; :B=A-B*C6:PRI 

NT HID?(H$,B+1,1); :RETU 

RN 
RR 360 A=INT(AD/Z6) :GOSUB350:A 

=AD-A*Z6:GOSUB3 50: PRINT 

BE 370 CK=INT(AD/26) :CK=AD-Z4* 

CK+Z5*{CK>Z7) :GOTO390 
PX 380 CK=CK*22+Z5* (CK>Z7)+A 
JC 390 CK=CK+Z5*(CK>Z5) : RETURN 
QS 400 PRINT "{down) STARTING AT 

§41"; tGOSUB300:IF IN?<> 

NS THEN GOSUB1030:IF F 

( SPACE 5THEN400 
EX 410 RETURN 
HD 420 PRINT" [RVS] ESTER DATA 

(SPACE )":GOSUB400:IF IN 

5°N$ THEN220 
JK 430 OPEN3,3:PRINT 
SK 440 POKE198,0:GOSUB360:IF F 
THEN PRINT IN$:PR1NT" 

{UP) {5 RIGHTj"; 
GC 450 FOR 1=0 TO 24 STEP 3:B$ 

=S?:FOR J=l TO 2:1F F T 

HEN BS=MIDS(IN5,I+J.l) 
HA 460 PRINT " (RVS )" B$L? ;: IF I< 

24THEN PRINT "(off)", • 
HD 470 GET AS: IF A$=N$ THEN470 



FK 480 IF(A5>"/"ANDA5<"!")0R{A 

? > " @" ANDA$ < "G" )THEN540 
GS 485 A=-(A$="H")-2*(A5=",")- 

3*(A$''".")-4*(AS="/")-5 
*(A?="J")-6*(A5="K") 

FX 486 A=A-7*(AS="L")-8*(A5=": 
")-9*(A$="U")-ia*(A5="I 
" ) -11*(A?="0" ) -12* (A5=" 
P") 

CM 487 A=A-13*CaS=»SS):IF A THE 
N A$=MID?( "ABCD123E456F 
0",A, I) :GOTO 540 

HP 490 IF A5=R5 AND( (I=0)AND{J 
=l)OR F)THES PRINT B$ ; : 
J=2 :NEXT: 1=24 :GOTO550 

KC 500 IF A9="{H0ME)" then PRI 
NT B$:J=2:NEXT:1=24:SEX 
T:F=0:GOTO440 

MX 510 IF (A$=>" {RIGHT) ")ANDF TH 
ENPRINT B?L? ; SGOTO540 

GK 520 IF A$<>L? AND A?<>D5 OR 
((I=0)AND(J=»1) )THEN GOS 
UB1060IGOTO470 

HG 530 A5=L5-I-SS+L5: PRINT BSL? ; 
:J=2-J:IP J THEN PRINT 
{ SPACE) L$; : 1=1-3 

QS 540 PRINT A5;:NEXT J;PRINT 
{ SPACE )S$; 

PM 550 NEXT I: PRINT: PRINT "{UP) 
(5 RIGHT) ",-:INPUT#3,IN$ 
:IF IN5=N$ THEN CLOSES 5 
GOTO220 

QC 560 FOR 1=1 TO 25 STEP3:B9= 
MID¥(IN5,I) :GOSUB320.-1F 
I<25 THEN GOSUB380!A(I 
/3)=A 

PK 570 NEXT: IF AOCK THEN GOSU 
B1060: PRINT "(BLK) (RVS) 
(space) ERROR: REENTER L 
INE g4i":P=l:GOTO440 

HJ 580 GOSUB1080:B=BS+AD-SA:FO 
R 1=0 TO 7:POKE B+I,A(I 
) :NEXT 

QQ 590 AD=AD+8:IF AD>EA THEN C 
LOSE3 : PRINT "{ DOWN }( BLUJ 
** END OF ENTRY **(BLK3 
(2 DOWN)":GOTO700 

GO 600 F=0:GOTO440 

QA 610 PRINT" (CLRJ (DOWN) {RVS) 
(SPACE) DISPLAY DATA "sG 
OSUB400:IF IN5=N? THEN2 
20 

RJ 620 PRINT" (down) (BLU3PRESS: 
(RVS) SPACE (OFF) TO PAU 
SE, (RVS) RETURN {off) TO 
BREAKg4 3{DOWN)" 

KS 630 GOSUB360 :B=BS+AD-SA:FOR 
laBTO B+7:A=PEEK(I) :GOS 
UB350:GOSUB380:PRINT SS 

CC 640 NEXT:PRINT"{RVS)"; :A=CK 

:GOSUB350:PRINT 
■KH 650 F=1:AD=AD+8:IF AD>EA TH 

ENPRINT" (DOWN) (BLU)** E 

ND OF DATA **"sGOTO220 
KC 660 GET A$:IF A5=RS THEN GO 

SUB1080IGOTO220 
EQ 670 IF A9=SS THEN F=F+1 :GOS 

UB1080 
AD 680 ONFGOTO630, 660,630 
CM 690 PRINT "(down) (RVS) LOAD 

(space) DATA ":OP=l:GOTO 

710 
PC 700 PRINT "{down) (RVS) SAVE 

(SPACE) FILE ":OP=0 
RX 710 IN$=N$! INPUT "(down) FILE 

NAMEg4|"rIN?:IF IN?=N5 

{ SPACE )THEN220 
PR 720 F=0:PRINT"{DOWN3 (BLK) 

(RVS}T(0FFJAPE OR ( RVS } 

D{0FF}ISK: g4|"; 



PP 730 GET A5:IF A?="T"THEN PR 

INT"T{DOWN)":GOTO880 
HQ 740 IF A$<>"D"THEN730 
HH 750 PRINT"D{DOWN3"50PEN15,8 

,15, "10: "!B=EA-SA!lN9=" 

0;"+INS:IF OP THEN810 
SQ 760 OPEN 1,8,8,IN$+",P,W":G 

OSUB860SIP A THEN220 
FJ 770 AH=INT(SA/256) :AL=SA-{A 

H*256) :PRINT#1,CHR${AL) 

;CHR$(AH); 
PE 780 FOR 1=0 TO B!PRINT#1,CH 

R${PEEK(BS+r)); :IF ST T 

HEN800 
FC 790 NEXTtCLOSEl :CL0SE15!G0T 

0940 
GS 800 GOSUB1060:PRINT"iDOWN) 

(BLK 3 ERROR DURING SAVE: 

E43" :GOSUB860 :GOTO2 20 
MA 810 OPEN 1,8,8,IN$+",P,R":G 

OSUB860!lF A THEN220 
GE 820 GET#1,A$,B?:AD=ASC(AS+Z 

5)+256*ASC(B?+ZS) :IF AD 

<>SA THEN F=1:GOTO850 
RX 830 FOR 1=0 TO B:GET#1,A5:P 

OKE BS4-I,ASC(AS + Z$) :IF( 

I<>B)AND ST THEN F=2:AD 

=I;I=B 
FA 840 NEXT: IF ST<>64 THEN F=3 
FQ 850 CLOSEl :CL0SE15:0N ABS { F 

>0)+l GOTO960,970 
SA 860 INPUT#15,A,A$:IF A THEN 
CLOSEl ICL0SE15 SGOSUB10 

60: PRINT "(RVS) ERROR: "A 

$ 
GQ 870 RETURN 
EJ 880 POKEiaS, PEEK ( FA+2 ): POKE 

187, PEEK (FA+3) :POKE18S, 

PEEK(FA+4) :IFOP=0THEN92 


HJ 890 SYS 63466 :IF(PEEK( 733 )A 

NDDTHEN GOSUB1060:PRIN 

T" (down) (RVS) FILE NOT 

(SPACE) FOUND ":GOTO690 
CS 900 AD=PEEK(829)+256*PEEK(8 

30): IF ADoSA THEN F=l : 

GOTO970 
SC 910 A=PEEK(a31 )+2 56*PEEK(83 

2)-l sF=F-2*(A<EA)-3*(A> 

EA) !AD=A-AD:GOTO930 
KM 920 A=SA;B=EA+1:GOSUB1010:P 

OKE780,3:SYS 63338 
JF 930 A=BS:B=BS+(EA-SA)+1:G0S 

UB1010:ON OP GOTO950:SY 

S 63591 
AE 940 GOSUB1080sPRINT"(BLU)»* 
SAVE COMPLETED **"!GOT 

O220 
XP 950 POKE147,0:SYS 63562:IF 

( SPACE jST>0 THEN970 
FR 960 GOSUB1080:PRINT"(BLU3** 
LOAD COMPLETED **":GOT 

0220 
DP 970 GOSUB1060:PRINT"{BLK3 

(RVS) ERROR DURING LOAD: 

tD0WN)g4i"!0K F G0SUB98 

0,990, 1000 :GOTO220 
PP 980 PRINT "INCORRECT STARTIN 

G ADDRESS ( " ; :GOSUB360 ! 

PRINT" ) ": RETURN 
GR 990 PRINT "LOAD ENDED AT "?: 

AD=SA+AD: GOSUB3 60 : PRINT 
D5; RETURN 
FD 1000 PRINT "TRUNCATED AT END 

ING ADDRESS"! RETURN 
RX 1010 AH=INT(A/256) :AL=A-(AH 
*256) :POKE193,AL:POKEl 
94, AH 
FF 1020 AH=INT(B/256) :AL=B-(AH 
*256) :POKE174,AL:POKEl. 
75, AH: RETURN 



128 COMPUni March 1987 



FX 1030 IF AD<SA OR AD>EA THEH 

1050 
HA 1040 IF(AD>511 AND AD<40960 
)OR(AD>49151 AND AD<53 
248)'rHEN GOSUB1080:F=0 
: RETURN 
HC 1050 GOSUB1060:PRINT"(RVSJ 
{SPACE) INVALID ADDRESS 
(down) tBLK}":F=i : RETU 
RN 
AR 1060 POKE SD+5, 31 SPOKE SD+6 
,208!POKE SD,240:POKE 
f SP ACE )SD+ 1,4: POKE SD+ 
4,33 
DX 1070 FOR S=l TO 100:NEXTiGO 

TO1090 
PF 1080 POKE SD+5,8:POKE SD+6, 
240 SPOKE SD,0:POKE SD+ 
1,90 J POKE SD+4,17 
AC 1090 FOR S=l TO 100:NEXT:PO 
KE SD+4,0jPOKE SD,0:PO 
KE SD+1,0!RETURN 

Program 2; MLX For 
Commodore 128 

AE 100 TRAP 960: POKE 4627,128: 

DIM NL?,A(7) 
XP 110 Z2=2:Z4=254tZ5=255iZ6=2 

56:Z7=127:BS=256*PEEK(4 
627):EA=65280 
FB 120 BE5=CHR5(7):RT5=CHR$(13 
) ! DL?=CHR$ ( 20 ) : SP?=CHR? 
C32):LF$=CHRS(157) 
KE 130 DEF FNHB(A)=INT(A/256) : 
DEF FNLB(A)=A-FNHB(A)*2 
56:DEF FNAD(A)=PEEK(A)+ 
256*PEEK(A+1) 
JB 140 KEY l,"A"sKEY 3,"B":KEY 
5,"C":KEY 7,"D":V0L 15 
;IF RGR(0)=5 THEN FAST 
FJ 150 PRINT" {CLR)"CHRS{ 142 );C 
HR$(8):C0LOR 0,15:COLOR 
4,15:COLOR 6,15 
GQ 160 PRINT TAB (12) "{RED} 
{RVS}{2 SPACES) 69 @J 
(2 SPACES )"RT$;TAB( 12)" 
(RVS) {2 SPACES} {OFF] 
{BLU) 128 MLX {RED} 
{RVS) {2 SPACES)"RT5;TAB 
<12)"{RVS) (13 SPACES] 
{BLU}" 
FE 170 PRINT"{2 DOWN] 

{3 SPACES] COMPUTE I'S MA 
CHINE LANGUAGE EDITOR 
Ca DOWN)" 
DK 180 PRINT" {BLK)STARTING ADD 
RESSg43"; :GOSUB 260:IF 
(SPACE) AD THEH SA=AD:EL 
SE 180 
FH 190 PRINT"(BLK) {2 SPACES] EN 
DING ADDRESSi4i"; tCOSUB 
260: IF AD THEN EA=AD:E 
LSE 190 
MP 200 P RI NT "{ DOWN ){BLK) CLEAR 
{space} WORKSPACE [Y/N]7 
|4i":GETKEY AgjIF A? <> " 
Y" THEN 2 20 
QH 210 PRINT" (DOWN) (BLU JWORKIN 
G. . . "; sBANK 0s FOR A=BS 
(SPACE] TO BS+(EA-SA)+7: 
POKE A,0:NEXT AsPRINT"D 
ONE" 
DC 220 PRINT TAB(10)"{DOWN} 

( BLK ) [ RVS } MLX COM^SAND 
(SPACE) MENU 143 (DOWN]": 
PRINT TAB(13)"(rVS)E 
{0FF]NTER DATA"RT5;TAB( 
13)"{RVSjDlOPF]lSPLAY D 
ATA"RT?;TAB(13)"{RVS]L 
(OFF)OAD FILE" 



HB 230 PRINT TAB{13)"{RVS)S 

{0FF)AVE FILE"RTSrTAB(l 
3)"{RVSJC(OFF)ATAL0G DI 
SK"RT$;TAB(13)"{RVS)Q 
( OFF }UIT{ down) (BLK)" 

AP 240 GETKEY AS:A=INSTR("EDLS 
C0",AS):ON A GOTO 340,5 
50,640,650, 930, 940 :GOSU 
B 950! goto 240 

SX 250 PRINT"STARTING AT";:G0S 
UB 260:IF(AD<>0)OR{A5*N 
L5)THEN RETURNsELSE 250 

BG 260 A$=NL$: INPUT A$:IF LEN( 
A5)=4 THEN AD=DEC(AS) 

PP 270 IF AD=0 THEN BEGIN; IF A 
S<>NL? THEN 300: ELSE RE 
TURN: BEND 

HA 280 IF AD<SA OR AD>EA THEN 
{SPACE) 300 

PM 290 IF AD>511 AND AD<65280 
(SPACE}THEN print BE?;: 
RETURN 

SQ 300 GOSUB 950: PRINT "(RVS] I 
NVALID ADDRESS (DOWN] 
{ BLK ) " : ADS0 : RETURN 

RD 310 CK=FNHBCAD) sCK=AD-Z4*CK 
+Z5*(CK>Z7):GOTO 330 

DD 320 CK=CK*Z2+Z5*CCK>Z7)+A 

AH 330 CK=CK+Z5*(CK>Z5) :RETURN 

QD 340 PRINT BE5;"{RVS} ENTER 
{space} DATA "s GOSUB 250 
:IF A$=NLS THEN 220 

JA 350 BANK : PRINT:F=0 :OPEN 3 
,3 

BR 360 GOSUB 310: PRINT HEX5(AD 
)+":";:IF F THEN PRINT 
{space ) L$ : PRINT " { UP 1 
{5 RIGHT}"; 

QA 370 FOR 1=0 TO 24 STEP 3:B$ 
=SP5:FOR J=l- TO 2:IF F 

{space)then b$=mid5(l5, 

I+J,l) 
PS 380 PRINT "( RVS ] "BS+LP$ ,-: IF 

{ space ]l< 24 THEN PRINT" 

{OFF]"; 
RC 390 GETKEY-A$:IF (A?>"/" AN 

D AS<":") OR(A?>"@" AND 
A5<"G") THEN 470 
AC 400 IF A$="+" THEN A5="E":G 

OTO 470 
QB 410 IF A5-"-" THEN A?="P":G 

OTO 470 
FB 420 IF A$=RT$ AND ((1=0) AN 

D (J=l) OR F) THEN PRIN 

T B5; :J=2:NEXT:I=24!GOT 

480 
RD 430 IF A$="{H0HE]" then PRI 

NT BSsJ=2!NEXT:I=24:NEX 

T:F=0:GOTO 360 
XB 440 IF (A$=" {RIGHT}") AND F 
THEN PRINT B$+LF$;sGOT 

O 470 
JP 450 IF A$<>LF? AND A$<>DL5 

{ SPACE )0R ((I=0> AND (j 

=1)) THEN GOSUB 950:GOT 

O 390 
PS 460 A$=LF$+SP$+LF$s PRINT B? 

+LF$; :J=2-J:IF J THEH P 

RINT LF$; : 1=1-3 
GB 470 PRINT A5;:NEXT J ; PRINT 

{ SPACE )SP5; 
HA 480 NEXT I:PRINT;PRINT"{UP) 

(5 RIGHT]"; !L5=" 

{27 SPACES}" 
DP 490 FOR 1=1 TO 2 5 STEP 3iGE 

T#3,A?,B$:IF A?=SP5 THE 

N 1=25 jNEXTs CLOSE 3sGOT 

220 
BA 500 A5=A?+B?sA=DEC(A$) :MID$ 

(L5,I,2)=A?:IF K25 THE 
N GOSUB 320:A(I/3)=A:GE 
T#3,A$ 



AR 510 NEXT I:IF AOCK THEN GO 
SUB 950! PRINTS PRINT" 
{RVS} ERROR: REENTER LI 
NE ":F=1:G0T0 360 

DX 520 PRINT BE$:B=BS+AD-SA:FO 
R 1=0 TO 7SP0KE B+1,A(I 
) :NEXT I 

XB 530 F=0;AD=AD+8:IF AD<=EA T 
HEN 360 

CA 540 CLOSE 3 :PRINT" {EX)WN} 

{BLU}** END OF ENTRY ** 
{BLK){2 D0WNJ":G0T0 650 

MC 550 PRINT BE5; " (CLR) (DOWN) 
(RVS) DISPLAY DATA " :G0 
sua 250 J IP A5=NL5 THEN 
{SPACE} 220 

JF 560 BANK 0t PRINT" { DOWN} 

(BLO) PRESS: { RVS } SPACE 
{OFF} TO PAUSE, ( RVS } RE 
TURN {OFF} TO BREAKi4i 
{ DOWN } " 

XA 570 PRINT HEX$(AD)+":"; :GOS 
UB 310:B=BS+AD-SA 

DJ 580 FOR I=B TO B+7:A=PEEK(I 
) SPRINT RIGHT? (HEX? (A), 
2) ;SPSr :GOSUB 320:NEXT 
{SPACE) I 

XB 590 PRINT" (RVS)", -RIGHT? (HEX 
$(CK),2) 

GR 600 F=l!AD>iAD+8:IF AD>EA TH 
EN PRINT" (BLU]** END OF 
DATA **"sGOTO 220 

EB 610 GET A5:IF A$=RT? THEN P 
RINT BE5sG0T0 220 

QK 620 IF A?=SP$ THEN F=P+lsPR 
INT BE5; 

XS 630 ON F GOTO 570,610,570 

RF 640 PRINT BE5 " {DOWN) {RVS ) L 
OAD DATA ":0P=1:G0T0 66 


BP 650 PRINT BE? "{down} {RVS} S 
AVE FILE ":OP=0 

DM 660 F=0:F?=NL?: INPUT "FILENA 
MEE48";F$sIF F?=NL$ THE 
N 220 

RF 670 PRINT" {DOWN] {BLK] (RVSJT 

{off}ape or {RVS)D{0FF] 
ISK: i4i"; 
SQ 680 GETKEY A$:IF A$="T" THE 
N 850:ELSE IF A5<>"D" T 
HEN 680 

SP 690 PRINT"DISK{DOWN}"!lF OP 
THEN 760 

EH 700 DOPENSl, (F5+",P"),W:IF 
{SPACE)DS THEN A$=D9:G0 
TO 740 

JH 710 BANK 0:POKE BS-2,FNLB(S 
A): POKE BS-1,FNHB{SA) :P 
RINT "SAVING ";F5: PRINT 

MC 720 FOR A=BS-2 TO BS+EA-SA: 
PRINT#l,CHR?(PEEK(A))r : 
IF ST THEN A?-"DISK WRI 
TE ERROR": GOTO 7 50 

GC 730 NEXT A: CLOSE 1 SPRINT" 
(BLU}** SAVE COMPLETED 
(SPACE] WITHOUT ERRORS * 
*"sGOTO 220 

RA 740 IF DS=6 3 THEN BEGIN sCLO 
SE 1: INPUT "{BLK} REPLACE 
EXISTING PILE [Y/K]g43 
";A?sIP A5="Y" THEN SCR 
ATCH(F$) SPRINT: GOTO 700 
:ELSE PRINT "{ BLK } "sGOTO 
660! BEND 
GA 750 CLOSE IsGOSUB 950s PRINT 
"(BLK) (RVS] ERROR DURIN 
G SAVE: g4i" SPRINT A5:G 
OTO 2 20 
FD 760 D0PEN#1,(F9+",P"):IF DS 
THEN A5=DS5sF=4sCLOSE 
{SPACE}l:G0TO 790 



March 1987 COMPUTEI 129 



DP 


820 


EB 


830 


FP 


840 


KS 


850 


XX 


860 



PX 770 GET#1,A?,B$:CL0SE 1 :AD= 
ASC(A$)+256*ASC(B5) :IF 
{SPACEJaDOSA then F=1: 
GOTO 790 
KS 780 PRINT "LOADING ";F$:PRIN 
T:BLOAD(F?),B0,P(BS) jAD 
=SA+FNAD( 174 )-BS-l :F=-2 
*(AD<EA)-3*(AD>EA) 
RQ 790 IF F THEN a00:ELSE PRIN 
T"(BLU)** LOAD COMPLETE 
D WITHOUT ERRORS **":G0 
TO 2 20 
ER 800 GOSUB 950 : PRINT "[BLK} 

[RVS) ERROR DURING LOAD 
I i4i":0N F GOSUB 810,8 
20 , 830 , 840 : GOTO220 
QJ 810 PRINT "INCORRECT STARTIN 
G ADDRESS ( " ; HEX$ ( AD ) ; " 
) ": RETURN 

PRINT "LOAD ENDED AT ";H 
EXStAD) :RETURN 
PRINT "TRUNCATED AT ENDI 
MG ADDRESS ("HEX$(EA)") 
": RETURN 

PRINT"DISK ERROR ";A¥:R 
ETURN 

PRINT "TAPE " : AD=POINTER ( 
F?):BANK 1 : A=PEEK ( AD) : A 
L=PEEK(AD+1) :AH=PEEK(AD 
+2) 

BANK 15: SYS DEC("FF68") 
,0,1:SYS DEC("FFBA"),1, 
l,0:SyS DEC( "FFBD"),A,A 
L.AHiSyS DEC( '■FF90"),12 
SsIF OP THEN 890 
FG 870 PRINT:A=SA:B=EA+1:G0SUB 
920:SYS DEC ("£919"), 3: 
PRINT "SAVING ";F$ 
AB 880 A=BS:B=BS+(EA-SA)+1:G0S 
UB 920: SYS DEC("EA18"): 
PRINT "{ DOWN } (BLU}** TAP 
E SAVE COMPLETED **":G0 
TO 2 20 
CP 890 SYS DEC ("E99A") SPRINT: I 
F PEEK (2816) =5 THEN COS 
UB 950: PRINT "{DOWN 3 
(BLK) (RVS) FILE NOT FOU 
ND ":GOTO 220 
GQ 900 PRINT"LOADING ...{DOWN} 
"!AD=FNAD(2ei7) :IF AD<> 
SA THEN F=1:GOTO 800: EL 
SE AD=FNAD(2819)-l:F=-2 
*{AD<EA)-3*(AD>EA) 
JD 910 A=BS:B=BS+{EA-SA)+1:G0S 
UB 920 I SYS DEC("E9FB")! 
IF ST>0 THEN 800: ELSE 7 
90 
XB 920 POKE193,FNLB(A)!POKE194 
,FNHB(A) :POKE 174,FNLB( 
B):P0KE 175,FNHB(B):RET 
URN 
CP 930 CATALOG; PRINT "{ DOWN j 

(BLU)** PRESS ANY KEY F 
OR MENU **";GETKEY A?:G 
OTO 220 
MM 940 PRINT BE?" {RVS) QUIT 

E4i";RT5;"ARE YOU SURE 
[SPACE] CY/N]7"!GETKEY A 
5: IF A5<>"Y" THEN 220 :E 
LSE PRINT"{CLRJ":BASK 1 
5: END 
JE 950 SOUND 1,500, 10: RETURN 
AF 960 IF ER=14 AND EL=260 THE 

N RESUME 300 
HK 970 IF ER=14 AND EL=500 THE 

N RESUME NEXT 
KJ 980 IF ER=4 AND EL=780 THEN 

F=4:A?=DS?iRESUME 800 
DQ 990 IF ER=30 THEN RESUME: EL 
SE PRINT ERRS(ER);" ERR 
OR IN LINE"; EL gt 



|U|| ^^ Machine Language 



Entry Program For 
, Apple 



To make it easier to enter machine lan- 
guage programs into your computer with- 
out typos, COMPUTE! is introducing its 
"MLX" entry program for the Apple 11 
series. It's our best MLX yet. It runs on the 
11, J/+, Ue, and He, and with either DOS 
3.3 or ProDOS. 



A machine language (ML) program is 
usually listed as a long series of num- 
bers, it's hard to keep your place and 
even harder to avoid making mistakes as 
you type in the listing, since an incorrect 
line looks almost identical to a correct 
one. To make error- free entry easier, 
COMPUTE! generally lists ML programs 
for Commodore and Atari computers in 
a format designed to be typed in with a 
utility called "MLX." The MLX program 
uses a checksum system to catch typing 
errors almost as soon as they happen. 
Apple MLX checks your typing on 
a line-by-line basis. It won't let you 
enter invalid characters or let you con- 
tinue if there's a mistake in a hne. It 
won't even let you enter a Hne or digit 
out of sequence. Best of all, you don't 
have to know anything about machine 
language to enter ML programs with 
MLX. Apple MLX makes typing ML 
programs almost foolproof. 

Using Apple MLX 

Type in and save some copies of Apple 
MLX on disk (you'll want to use MLX to 
enter future ML programs in COM- 
PUTE!). It doesn't matter whether you 
type it in on a disk formatted for DOS 
3.3 or ProDOS. Programs entered with 
Apple MLX, however, must be saved to 
a disk formatted with the same operat- 
ing system as Apple MLX itself. 

If you have an Apple He or lie, make 
sure that the key marked CAPS DOCK is 
in the down position. Type RUN. You'll 
be asked for the starting and ending ad- 
dresses of the ML program. These values 
vary for each program, so they're given at 
the beginning of the ML program listing 
and in the program's accompanying arti- 
cle. Find them and type them in. 

Invalid Characters Banned 

Apple MLX is fairly flexible about how 
you type in the numbers. You can put 
extra spaces between numbers or leave 
the spaces out entirely, compressing a 
line into 18 keypresses. Be careful not to 
put a space between two digits in the 
middle of a number. Apple MLX will 



Tim Victor. Editorial Programmer 



read two single-digit numbers instead of 
one two-digit number (P 6 means F and 
6, not F6). 

You can't enter an invalid character 
with Apple MLX. Only the numerals 0-9 
and the letters A-F can be typed in. If you 
press any other key (with some excep- 
tions noted below), nothing happens. 
This safeguards against entering extrane- 
ous characters. Even better, Apple MLX 
checks for transposed characters. If 
you're supposed to type in AO and in- 
stead enter OA, Apple MLX will catch 
your mistake. 

The next thing you'll see is a menu 
asking you to select a function. The first is 
(E)NTER DATA. If you're just starting to 
type in a program, pick this. Press the E 
key, and the program asks for the ad- 
dress where you want to begin entering 
data. Type the first number in the first 
line of the program listing if you're just 
starting, or the line number where you 
left off if you've already typed in part of a 
program. Hit the RETURN key and begin 
entering the data. 

Once you're in Enter mode, Apple 
MLX prints the address for each program 
line for you. You then type in all nine 
numbers on that line, beginning with the 
fust two-digit number after the colon (:), 
Each line represents eight bytes and a 
checksum, \Vhen you enter a line and hit 
RETURN, Apple MLX recalculates the 
checksum from the eight bytes and the 
address. If you enter more or less than 
nine numbers, or the checksum doesn't 
exactly match, Apple MLX erases the line 
you just entered and prompts you again 
for the same line. 

Apple MLX also checks to make 
sure you're typing in the right line. The 
address (the number to the left of the 
colon) is part of the checksum recalcula- 
tion. If you accidentally skip a line and 
try to enter incorrect values, Apple MLX 
won't let you continue. Just make sure 
you enter the correct starting address; if 
you don't, you won't be able to enter any 
of the following lines. Apple MLX will 
stop you. 

Editing Features 

Apple MLX also includes some editing 
features. The left- and right-arrow keys 
allow you to back up and go forward on 
the line that you are entering, so you can 
retype data. Pressing the CONTROL 
(CTRL) and D keys at the same time 
(delete) removes the character under the 



130 COMPUTEI March 1987 



cursor, shortening the line by one charac- 
ter. Pressing CTRL-I [insert] puts a space 
under the cursor and shifts the rest of the 
line to the right, making the line one 
character longer. If the cursor is at the 
right end of the line, neither CTRL-D nor 
CTRL-I has any effect. 

When you've entered the entire list- 
ing (up to the ending address that you 
specified earlier), Apple MLX automati- 
cally leaves Enter mode and redisplays 
the functions menu. If you want to leave 
Enter mode before then, press the RE- 
TURN key when Apple MLX prompts 
you with a new line address. (For in- 
stance, you may want to leave Enter 
mode to enter a program listing in more 
than one sitting; see below.) 

Display Data 

The second menu choice, (D)ISPLAY 
DATA, examines memory and shows the 
contents in the same format as the pro- 
gram listing. You can use it to check your 
work or to see how far you've gotten. 
When you press D, Apple MLX asks you 
for a starting address. Type in the address 
of the first line you want to see and hit 
RETURN. Apple MLX displays program 
lines until you press any key or until it 
reaches the end of the program. 

Save And Load 

Two more menu selections let you save 
programs on disk and load them back 
into the computer. These are (S)AVE 
FILE and (L)OAD FILE. When you press 
S or L, Apple MLX asks you for the 
filename. The first time you save an ML 
program, the name you assign will be the 
program's filename on the disk. If you 
press L and specify a filename that 
doesn't exist on the disk, you'll see a disk 
error message. 

If you're not sure why a disk error 
has occurred, check the drive. Make sure 
there's a formatted disk in the drive and 
that it was formatted by the same operat- 
ing system you're using for Apple MLX 
(ProDOS or DOS 3.3). If you're trying to 
save a file and see an error message, the 
disk might be full. Either save the file on 
another disk or quit Apple MLX (by 
pressing the Q key), delete an old file or 
two, then run Apple MLX again. Your 
typing should still be safe in memory. 

Apple MLX: Machine 
Language Entry Program 

For Instructions on entering this program, 
please refer 1o "COiyPUTEI's Guide to Typing 
In Programs" elsewhere in this issue. 

8( 100 N = 9: HOME : NORMAL : PR 
INT "APPLE MLX"! POKE 34, 
2: ONERR GOTO 610 

CC 110 VTAB 1: HTAB 20: PRINT "S 
TART ADDRESS";: GDSUB 530 
: IF A = THEN PRINT CHR 
« (7): GOTO 110 

BC 120 S = A 



£3 130 



21 140 
85 130 



AE 160 

93 170 
AF 180 



*1 190 
39 200 



92 210 
C2 220 



It 


230 


93 


240 


n 


250 


n 


2A0 


CC 


270 


49 


280 


M 


290 



F9 300 
27 310 
72 320 
BE 330 
22 340 
Ef 350 
iS 360 



VTAB 2: HTAB 20: PRINT "E 
ND ADDRESS " ; : 60SUB S30 
: IFS>=AORA=0 THE 
N PRINT CHR« (7) : GOTO 13 


E = A 

PRINT : PRINT "CHOOSE: (E) 
NTER DATA";: HTAB 22: PR I 
NT "(OJISPLAY DATA": HTAB 
8: PRINT "(L)OAD FILE ( 
S)AVE FILE (Q)UIT"s PRIN 
T 

GET A«: FOR I = 1 TO 5: I 
F A» < > MID» ("EDLSQ",!, 
1> THEN NEXT : SOTO 160 
ON I GOTO 270,220,180,200 
: POKE 34,0: END 
INPUT "FILENAME: ";A*: IF 
A* < > "" THEN PRINT CHR 
» (4) ;"BLaflD";A*;",A";S 
GOTO 150 

INPUT "FILENAME: ";A«: IF 
A* < > "" THEN PRINT CHR 
» (4);"BSAVE"|A»;",A"jS5" 
,L"; CE - S) +1 
GOTO 150 

GOSUB 590: IF B = THEN 
150 

FOR B = B TO E STEP a:L = 
4: A = B: GOSUB 580: PRIN 
T A»; "s "jsL = 2 
FDR F = TO 7:V(F + 1> = 
PEEK (B + F) : NEXT : G03 
UB 560: VC?) = C 
FOR F = 1 TO N:A = V(F): 
GOSUB 5B0: PRINT A«" ";: 
NEXT ! PRINT 2 IF PEEK <4 
9152) < 128 THEN NEXT 
POKE 49168,0: GOTO 150 
GOSUB 590: IF B = THEN 
150 

FOR B = B TO E STEP 8 
HTAB 1:A = B:L = 4: GDSUB 
580: PRINT A»;": ";: CAL 
L 64668: A* = "":P • 0: GO 
SOB 330! IF L » THEN IS 


GOSUB 470: IF F < > N THE 
N PRINT CHR* (7) i s SOTO 2 
90 

IF N = 9 THEN GOSUB 560: 
IF C < > V<9) THEN PRINT 
CHR* (7) ; : GOTO 290 
FDR F = 1 TO 8: POKE B + 
F - l.VCF): NEXT : PRINT 
: NEXT s GOTO 150 
IF LEN (A«) = 33 THEN A» 
= a»:P = 0: PRINT CHR* (7 

>; 

L = LEN (A»):0« = A»:0 = 
P:L« = "": IF P > THEN 
L» » LEFT* (n«,P) 
R* = "": IF P < L - 1 THE 



N R« 

1) 
HTAB 

! IF 



RIGHT* (ft*,L - P 



7: PRINT L*5 i FLASH 
P < L THEN PRINT MID 
« (A«,P + 1,1)5! NORMAL : 

PRINT R»s 
PRINT " ";: NORMAL 
K = PEEK (49152) : IF K < 
128 THEN 380 

POKE 49168,0: K = K - 128 
IF K = 13 THEN HTAB 7: PR 
INT A»!" "5! RETURN 
8ft 410 IF K = 32 OR K > 47 AND K 



7B 370 
Ei 380 



CI 390 
SB 400 



< 58 OR K 

1 THEN A* = L« + 
+ R«:P = P + 1 



> 64 AND K 
CHR* 



< 7 

(K) 



CI 420 
5F 430 

lA 440 



IF K 
* 
IF K 



4 THEN A* 



= 9 THEN A» 



L« + R 



L« + 



93 450 



n 460 

37 470 



BB 480 
5F 490 

>9 500 

17 510 
6S 520 

Al 530 
6F 540 

20 550 
29 560 

2t 570 
U SB0 

IF 590 
ID 600 

hi 610 



IF K = 21 THEN P = P + (P 

< L) 
GOTO 330 
F = 1:D = 0: FOR P = 1 TD 

LEN (A*);C« = MID* (A«,P 
, 1) : IF F > N AND C* < > 
" '■ THEN RETURN 
IF C* < > " " THEN GDSUB 
520:V(F) =■ J + 16 « (D ■= 
1> t VCFJiD = 0+1 
IF D > AND C« = " " OR 
D = 2 THEN D = 0IF = F + 
1 

NEXT ! IF D = THEN F - 
F - 1 
RETURN 
J = ASC (C*):J = J - 4B - 

7 « £J > 64) : RETURN 
A = 0! INPUT A*! A* = LEFT 
» (A*, 4): IF LEN (fl») = 

THEN RETURN 
FOR P = 1 TD LEN (A*):C« 



Js 



R« 

IF K 
> 0) 



+ MID* (A*,P + 1,1) + 



B THEN P 



P - <P 



= MID* (A*,P, 1): IF C» 
"0" OR C» > "9" AND C* 
"A" OR C4 > "Z" THEN A 
0: RETURN 
GDSUB 520: A = A t 16 + 

NEXT ! RETURN 
C = INT (B / 256) :C = B - 

254 « C - 255 » (C > 127 
)sC = C - 255 » (C > 255) 
FOR F=1TQB:C=C*2 
- 255 « (C > 127) + V(F) ! 
C = C - 255 « (C > 255) : 
NEXT : RETURN 
I = FRE <0):A» = ""s FOR 
I = 1 TO L:T = INT (ft / 1 
6): A* = MID* ("0123456789 
ABCDEF",A - 16 * T + 1,1) 

+ A»:A = T: NEXT : RETUR 
N 

PRINT "FROM ADDRESS ";: G 
DSUB 530: IF S > A OR E < 

A OR A = THEN B " 0s R 
ETURN 

B = S + a » INT (<A - S) 
/ 8) : RETURN 

PRINT "DISK ERROR": GOTO 
1S0 ^ 



All the programs in 

this issue are 

available on the 

ready-to-load 

COMPUTE! Disk. To 

order a one-year 

(four-disk) 

subscription, 

call toll free 

800-247-5470 

(in lA 800-532-1272). 

Please specify which 

computer you are 

using. 



March 19B7 COMPUTEI 131 






10 MITTE DRIVE 
Slom 80 FlopplatI 



■ EXPANDABLE 

■ TBANtPABENT 
OPERATION 

MULTIPLE 

CHAINED 
PABT1TI0MB 



j-™s;i?l 



20 Mbyte Modal HFD-ZO 
ONLY •995."*' 

10 MBYTE MODEL Hf D 10 

ONLY *e95." 

5 MBTYE MODEL MFD-5 

ONLY "695 « 



" 0EO8" CO«PATieLE 

■ SUPPORTS SINOLE SIDEO 
C-13> ANDCPM 

* BUILT-IN FLOPPY DRIVE 

' SUPPORTS ALL 3.0 TO 7,0 
(C-1?9) DOS COWHANDS 

- REPROGRAMMAOLE-BOSPAK— 
^BUFFERED OPERATING SYSTEM) 
The DATA CHIEF haibeen doaigned by C^SiusofsToi CS4 usors 

Slorsge in original inOiwiauBl d«»h lormai 

- Easy AccffUS lo pjogiam* via Dish Numbs* 
-Eiftmpie lord»»ii*60 OPEN 15. 8 IS ■■H60' 

SlADdard Utilities Included 

- Includes Wedge Commaftas 
135 Wall Power Supply 

Meiai Enclosure houms up to J each ^'2 Ht Hard Oiiks 

- Provides EjiCBlienl Monitor SlanO P C styte 

- Allows roDm lof luljre e^pi^iion 
CompletB Ope'siing ManuBi 

I Year Full Warranlv 
The DATA CHIEF is ported lor )oli*r»'e and rv«fOwarode'(eloperi, 
DuSLnoij uiBfs students Afid so'ious cof^puior enpenrrflnte^s as 
well as rpi bulletin Doards and dst* base systems 
TOORDER SEND CERTIFIED CHECK OR MONEY ORDER TO 

Maryland residents add ^*m ^les ta 



J. C^T. 



3 8AUGHMANS LANE 

JITE301 

lEDERICK MD!17D1 



For more infoiniaTion call 
(301)371-4000 

Alio" 4-6 ••em OBli^eiy |U S Onlyj 

' C-&4 & C-126 are trsdemAik} o^ 

Co^nioao'e ElBClrooics Lid 

" GEOS i« a Ifidemark 0l 

Be^hfllev So'tviDrks 




Cases: 

$6.95 each: 
3 for $20.00; 
6 for $36,00 



Binders 

Se.50 each; 
3 for S24.75; 
6 for $48.00 



Save Your Copies of COMPUTE! 

Protect your back issues 
of COMPUTE! in durabie 
binders or library cases. 
Eacti binder or cose is 
custom-made in flag- 
blue binding withi em- 
bossed white lettering. 
Each hiolds a year of 
COMPUTE!. Order several 
and keep your issues of 

COMPUTE! neatly organized for quick reference. 

(These binders make great gifts, too!) 



(Please add $2.50 per unit for orders outside the U.S.) 
Send in your prepaid order with the ottoched coupon 

Mall to: Jesse Jones Industries, P.O. Box 5120, 

Oept, Code COTE, Philadelphia, PA 19141 

Please send me COMPUTEI D cases n binders. 

Enclosed is my check or money order for S . 

(U.S. funds only.) 

Name 

Address 

City— 

State Zip 

Satisfociion guQtonteed or money fefunded, 
Please oilow 4-6 weeks tor delivery. 



; Advertisers Index^ 



Reader Service Number/Advertlter 



Page 



102 Abacus 29,31 

103 Abby's Discount Software 75 

104 Acorn of Indiana 112 

105 Activision 6 

106 Activision 7 

Batteries Included 15 

107 Blacksiiip Computer Supply . 115 

1 08 Casino Software 115 

C.O.M.B. Direct Marketing Corp 71 

109 CompuServe IFC 

110 ComputAbitity 66-67 

1 1 1 Computer Mail Order 10-11 

1 12 Computer Stationery Printers 74 

113 Covox. Inc 74 

1 14 Davidson & Associates, Inc 13 

1 15 Dresselhaus 72 

116EPYX 1 

117 EPYX IBC 

Halix Institute 1 03 

118 In Control 132 

119 Lyco Computer 32-35 

120 Midwest Computer Camp 112 

NRi Sclioois 521 

121 Omnitronix 103 

122 PC Network 20-21 

123 Precision images 72 

124 Pro-Tech-Tronics 30 

125Protecto 26-27 

126 Silicon Express 25 

1 27 subLOGIC Corporation BC 

128 Sun Remarketing 77 

129 Tenex Computer Express 73 



Classified Ads 121 

COMPUTE! Books' ST Collection 2 

COMPUTEI Disk Subscription 39 

COMPUTE! Subscription 17 



Tho New Ccrrrrociois ?\i/i A Hcncfc-C^ Preview 

COMPUTB^ 




TRY COMPUTE! EVERY MONTH— 12 ISSUES— AT 
33% OFF THE COVER PRICE. 

Mr/Ms 

Street 



.State. 



.Zip. 



City. 

D I prefer 24 Issues — 2 years — at $45.00 
D Bill Me D Check Enclosed 



J5362 



Foreign and Canadian, please add $6 (U.S.) per year postage. 
Offer subject to cfiange without notice. 



BUSINESS REPLY MAIL 

FIRST CLASS PERMIT NO. 7478 DES MOINES, IOWA 



POSTAGE WILL BE PAID BY ADDRESSEE 



COMPUTE! 

PO BOX 10954 

DES MOINES, IOWA 50347 



NO POSTAGE 

NECESSARY 

IF MAILED 

IN THE 

UNITED STATES 



Tram for the Fastest Growing Job Skill in America 



Only HRi teaches 
you to service 
all computers 
as you build 
your own, fully 
IBNI'PC compatible 
microcomputer 



The biggest growth in jobs 
between now and 1995, accor- 
ding to Department of Labor 
estimates, will occur in the computer service 
and repair business, where demand for trained 
technicians will actually double. 

You can cash in on this opportunity— either as a 
full-time corporate technician or an independent service 
person— once you've learned all the basics of computers 
the NRI way. 

Get inside the newest, fully IBM-PC compatible Sanyo 
Microcomputer 

As an NRI student, you'll get total hands-on training as 
you actually bdld the latest model Sanyo 880 Series com- 
puter from the keyboard up. It's fully IBM PC compatible, 
and, best of all, it runs programs ahnost twice as fast as an 
IBM PC. As you assemble the Sanyo 880, you'll perform 
demonstrations and experiments that will give you a total 
mastery of computer operation and servicing techniques. 

Understanding you get only tbrougb experience 

You need no previous knowledge to succeed with NRI. 
You start with the basics, rapidly building on the funda- 
mentals of electronics with bite-size lessons. You perform 
hands-on experiments with your 
NRI Discovery Lab® and then 
move on to master advanced 
concepts like digital logic, 
microprocessors, and computer 
memories. 




Four incomparable total systems training includes all this: 

NRI's unique Discovery Lab® to let you design and 
modify circuits, diagnose and repair faults • NRI's digital 
multimeter featuring LCD and four key functions, complete 
with "talk-you-through" instruction on audio tape to teach 
you how pros use meters • A digital logic probe that lets you 
visually examine computer circuits • The latest Sanyo 880 
dual speed computer with "intelligent" keyboard • 360K 
double-density, double-sided disk drive • 8K ROM, 256K 
RAM • Bundled software, including GW BASIC. MS-DOS, 
WordStar, CalcStar • Sanyo reference manuals to give you 
programmmg guidelines and schematics. 

See other side for highlights ofNIU's "hands-on " 
computer training P- 



SEND CARD TODAY FOR FREE NRI CATALOG 



Learn at home in your spare time 

You train in your own home at 
your own convenience, backed at 
all times by your own NRI in- 
structor and the entire NRI staff 
of educators and student service 
support people. They're always 
ready to give you guidance, follow 
your progress, and help you over 
the rough spots to keep you mov- 
ing toward your goal. 

Get all the facts from NRI's 
100-page catalog. 



n Send me your 
free catalog on NRI 
computer electronics 
training 

COMPUTER 
ELECTRONICS training 
prepares you to service all 
computers as you build 
your own 16-bit, IBM PC- 
compatible computer. 
Total systems training 
includes disk drive, test 
equipment, bundled 
software, and NRI 
Discovery Lab®. 



OTHER CAREER OPPORTUNITIES 



n TV, Audio, and Video Servicing 

n Satellite Electronics 

n Industrial Electronics 

D Data Communicalions 

n Robotics & Iridustrial Control 



□ Electronic Design Tecfinology 

D Digital Electronics Servicing 

n Communications Electronics 

D Basic Electronics 



For career courses approved 

under G.l. Bill: C Check (Of details. 



Name 



(Please Prinll 



I 



Street 



City 



Slate 



AiOTediled by the National Ho™ Stutly Council. 



Zip 
230-037 



Learn Computer Servicing Sfiiils 
with NRI's "HandS'On" Training 




Using NRI's unique Action Audio 
Cassette, you are talked Ihrough the 
operation and practical application ol 
your hand-held digital multimeler— the 
iiaslc, indispensable toot tor the 
computer specialist. 




You'll sel up and perform electronics 
experlmonts and demonstrations usir^g 
youf N Rl Dlscosiery Lab '. You'll even 
Interface the lab with your computer to 
"see" keytjoand-generated data. 




After you build this digital logic probe, 
you'll explore the operation of the Sanyo 
detached "intelligent" keytward and its 
dedicated microprocessor- 




Next, you Install the disk drive- You learn 
disk drive operation and adjustment, 
make a copy of the MS-DOS operating 
disl(, and Ix^ln your eipkmtion of the 
B08SCPU- 



Total Computer Systems Training, Only From NRI 

No computer stands alone ... it's part of a 
total system. And if you want to learn to service 
and repair computers, you have to understand 
computer systems. Only NRI includes a 
powerful computer system as part of 
your training, centered around the new, 
fully IBM-PC compatible Sanyo 880 
Series computer. 

As part of your training, you'll 
actually buUd this powerful Sanyo 880 
Series IBM-PC compatible computer. It 
has two operating speeds: the standard 
IBM sp&eil of 4.77 MHz and a remark- 
able turbo speed of 8 MHz. 



fes^t*— 



SEND TODAY FOR FREE CATAIX)G 



BUSINESS REPLY MAIL 

FIRST CLASS MAIL PERfHIT NO 1Q008 WASHINGTON. D C 



NO POSTAGE 

NECESSARY 

IF MAILED 

IN THE 

UNITED STATES 



POSTAGE WILL BE PAID BY ADDRESSEE 



NRI Schools 

McGraw-Hill Continuing 

Education Center 
3939 Wisconsin Avenue 
Washington, D.C. 20077-9265 



|,,l.lll<Mlli..ll..ll...ll<l<<>>l.l.lii.. 



Mastery is "built-in" 

You'll assemble the Sanyo 
"inteUigent" keyboard, install 
the power supply and disk 
// drive, and attach the high 
resolution monitor. 

The demonstrations and 
experiments you perform as 
you build your Sanyo 
computer wiU give you a total mastery of 
computer operation, based on a thorough 
knowledge of the intricacies of computer 
theory. And, most importantly, during 
your assembly process you'll be able 
to "see" for yourself how each 
particular section of your computer 
actually works. 

100-page, free catalog tells more 
. ..send today 

Send the postage-paid reply 
card today for NRI's 100-page 
catalog that gives all the facts 
about computer training, plus 
career training in robotics, data 
communications, TV/audio/video 
servicing, and many other fields. 
If the card is missing, write to 
NRI at the address below. 




SCHOOLS 



McGraw-Hill Continuing 
Education Center 
3939 Wisconsin Avenue 
Washington, D.C. 20016 m,>,^ 

We'll give you tomorrow, ifnii 



COMPUTEI's 

FREE Reader information Service 

Use these cards to request FREE information about ihe products ad- 
vertised in this issue. Cieariy print or type your full name and address, 
Only one card should be used per person. Circle the numbers that 
correspond to the key number appearing in the advertisers index, 

Send in the card and the advertisers will receive your inquiry. Al- 
though every effort is made to insure that only advertisers wishing to 
provide product information have reader service numbers, compute! 
cannot be responsible if advertisers do not provide literature to 
readers. 

Please use these cards only for subscribing or for requesting product 
information. Editorial and customer service inquiries should be ad- 
dressed to: COMPUTEI, P,0, Box 5406, Greensboro, NC 27403, Check 
the expiration date on the card to insure proper handling. 

Use these cards and this address only for computei's Reader Infor- 
mation Service. Do not send with payment in any form. 

COMPUTES 

101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 

118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 

135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 

152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 

169 170 171 172 173 174 175 176 177 17B 179 180 181 182 183 184 185 

186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 

203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 

220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 

237 238 239 240 241 242 243 244 245 246 247 248 249 260 251 252 253 

ro :,:'.'- "r yC'i wih De billed (or S 



Please let us know. Do you 
own: plan to buy: 



D 

zro 

D 
D 

2M 

D 

276 

D 

278 

D 

2M 



Apple . 
Atari — 



Commodore 

IBM 



TI-99/4A 
Other _ 



(specify modeO 



D 
271 

D 

273 

D 

275 

D 

277 

D 
279 

□ 

2«l 



Please print or type name and address. 
Limit one cord per person. 

Nome 



Address 



City 



State/Province 



Zip 



Country 



Phone 



Please Incljd© ZIP Code 



Expiration Date 4/30/87 



C0387 



SUBSCRIBE 

TO 

COMPUTE! 



For Fastest Service, 

Call Our Toll-Frae 

US Order Line 

800-247-5470 
In M call 4-a(K)-Bll-12Ta 



D $24.00 One Year US Subscription 
D $45.00 Two Year US Subscription 



Name 










Address 


City 


State 




Zip 


D Payment Enclosed 
Charge my: D VISA 
Account No- 


n Bill me 
D MasterCard 


n American Express 
Expires / 





YOur stjbJCflplion wifJ begin wllh the next ovcHable iuue. Pleojs allow d-6 weeki for delivery of fifst iijue- Subscripllon prlcei iub|ec( to 
change ct any tfme. Outildo the U$A. pieose adC S6 'o^ each subicttono/i 



Place 

Stamp 

Here 



COMPUTE! Reader Service 

P.O. Box 2141 
Radnor, PA 1 9089 



NO POSTAGE 

NECESSARY 

IF MAILED 

IN THE 

UNITED STATES 



BUSINESS REPLY MAIL 

FIRST CLASS PERMIT NO. 7476 DES MOINES, IOWA 



POSTAGE WILL BE PAID 8Y ADDRESSEE 



COMPUTE! 

PO BOX 10954 

DES MOINESJOWA 50347 




The follow- 
ing programs 
are brought to 
you by an incredi- 
ble series of events. 




ming, 
diving, 
gymnas- 
tics and 
skeet 
shooting, 
just to name a few. 

There's its equally 
acclaimed sequel, Sum 



Sumo wrestling. 
A sport ofhtttnl and tradition. 



Gymnastics. A 

grac€f\U display of tfalaitce. 

poise and amcetitration 



The Bobskd. 

One wmrtg move and it's 

right doini the tube. 



the hot dog aerials. And 
beg for mercy in the 
Biathlon. And coming 




Over 30 
of them, 
to be 
specific. 

They're 
the unfor- 
gettable 
Ii events of 
jf our best-sell- 
ing Games 
series. 

First, World 
GamesT Eight 
international 
events rang- 
ing from 
Sumo wres- 
tling to cliff diving. 
Bull riding to weight- 
lifting. Even skiing the 
Chamonix slalom. 

There's our enor- -^ 
mously popular 
Summer Games? 
Break records in 
track, 
swim- 





mer Games IF* Go for 
the gold in rowing, cy- 
cling, equestrian, fenc- 
ing, the high jump, the 
triple jump , kayaldng, 
and more. 
Finally 
there's 
the icy 

CnallengeS aiffDmng.hiAeap,iki>. 

of Winter "^'^'"''"'' 
GamesT Wait'll you 
careen the tube in a bob- 
sled. Fly the ski jump. Or 
choreograph 
an entire fig- 
ure skating 
routine.^ull 

Ride a bucking hull ^ 




nextsummer,oury| 
newest Games 
program. (Bet- 
ter get ready 
to hit the 



^'■"■z 



EPYK 



Appte II tt i-uTtiputibtca. 1 lit H piuyfts. 
Atari ST, C&t/I28. IBM Apple II & ampali 
(£ frunpGlibks. Coming bks. Atari C64/I2& 
for Ihe Apple nCS. 



1 76 ."* players. 
Apple I! & compati- 
bles. C64/128. IBM 
(£ amtpatilfles- 




Fly to Florida! 



Scenery Disk # 7 covers the entire East Coast area from 
Philadelphia to Miami. The Florida coastline, from Cape 
Canaveral to Miami, is perfect for concentrated sight-seeing. Or 
fly to Washington DC, where scenery details include the Capitol 
Building, Pentagon, and Washington Monument. Whether seek- 
ing the intellectual challenge of Flight Simulator or the brute- 
force fun of Jet, you'll find this latest evolution of SubLOGlC 
scenery absolutely breath-taking! 




Scenery Disks now available: 



Areas 1-7 

San Francisco 'STAR' 

Central Japan 



See your dealer, SubLOGlC Scenery Disks are available in- 
dividually for $19.95. The six-disk Western U.S. set is available 
for $99.95. For additional product ordering information or the 
name of the dealer nearest you, call 



LDGIC 



Corp^rntlor 

713Ed9«DrookOrlVfl 
Champaign I L6ia£0 
III 7|J}9-Ut3TlMl: zooms 

ORDER LINE: (BOOJ 637-4983 

L«=tpl in iiiiii:Ht. n.i.a&kB ana MsAaii] 
Open 7 AW 10 9 PM Canlral Time